R を使用してテキスト マイニングを行う場合、テキスト データを再処理した後、さらに探索するために文書用語マトリックスを作成する必要があります。でも中国語と同じように、英語にも「意味論的距離」や「機械学習」などいくつかのフェーズがあり、それらを単語に分割すると、まったく異なる意味を持ちます。値は、「セマンティック距離」、「機械学習」を含むなど、空白で区切られた用語で構成されます。ドキュメントが「単語の意味的距離を計算するために機械学習法を使用できる」場合、このドキュメントを辞書[「意味的距離」、「機械学習」]に適用すると、1x2マトリックスが返されます:[意味的距離、1 ;機械学習、1]
質問する
769 次
1 に答える
2
quanteda を使用してこれを行うことは可能ですが、フレーズごとに辞書を作成し、テキストを前処理してフレーズをトークンに変換する必要があります。「トークン」になるには、フレーズを空白以外の何か (ここでは " _
" 文字) で結合する必要があります。
OPのフレーズを含むテキストの例を次に示します。図のために 2 つのテキストを追加しました。以下では、ドキュメント機能マトリックスの最初の行が要求された回答を生成します。
txt <- c("We could use machine learning method to calculate the words semantic distance.",
"Machine learning is the best sort of learning.",
"The distance between semantic distance and machine learning is machine driven.")
フレーズからトークンへの現在の署名では、phrases
引数がディクショナリまたはコロケーション オブジェクトである必要があります。ここでは、それを辞書にします。
mydict <- dictionary(list(machine_learning = "machine learning",
semantic_distance = "semantic distance"))
次に、テキストを前処理して、辞書のフレーズをキーに変換します。
toks <- tokens(txt) %>%
tokens_compound(mydict)
toks
# tokens from 3 documents.
# text1 :
# [1] "We" "could" "use" "machine_learning"
# [5] "method" "to" "calculate" "the"
# [9] "words" "semantic_distance" "."
#
# text2 :
# [1] "Machine_learning" "is" "the" "best"
# [5] "sort" "of" "learning" "."
#
# text3 :
# [1] "The" "distance" "between" "semantic_distance"
# [5] "and" "machine_learning" "is" "machine"
# [9] "driven" "."
最後に、アンダースコア文字を含むすべての機能に対して、デフォルトの「グロブ」パターン マッチを使用してすべてのフレーズを維持しながら、ドキュメント機能マトリックスを構築できます。
mydfm <- dfm(toks, select = "*_*")
mydfm
## Document-feature matrix of: 3 documents, 2 features.
## 3 x 2 sparse Matrix of class "dfm"
## features
## docs machine_learning semantic_distance
## text1 1 1
## text2 1 0
## text3 1 1
(v0.9.9以上で回答が更新されました)
于 2016-04-20T04:22:27.553 に答える