1

私は、大量の苦情データに関するテキスト分析プロジェクトで忙しくしています。データの問題の 1 つは、同じ単語の同義語が複数あることです。たとえば、bill、billing、billed、bills などです。通常、単語の頻度リストを作成し、明らかなものを手動で照合してから、主な単語を適用します。請求、請求、請求 -> 請求など、すべての類義語インスタンスの元のコーパス (すべて請求関連であるため)。ここの誰かが私を助けてくれた気の利いたコードがあります。

最近、文字列距離アルゴリズムを使用して、考えられる類義語を特定することで作業を楽にするというアイデアをいじっています。stringdist パッケージを使用していますが、テストを効率的に実装するにはどうすればよいか途方に暮れています。基本的に、すべての単語の行列と、交差部分に stringdist 関数の結果が必要です。

次のように stringdist 関数を使用します。

library(stringdist)
1 - stringdist('MARTHA','MATHRA',method='jw',p=0.1)

0.955 の類似性スコアを与える

したがって、a、b、c の単語リストから、次のようになります (値は純粋に指標です)。

   a    b    c
a  1    0.4  0.4
b  0.4  1    0.4
c  0.4  0.4  1

交点は stringdist 関数の結果です。

または、次のものも使用できます。

a  a  1
a  b  0.4
a  c  0.4
b  a  0.4
b  b  1
b  c  0.4
c  a  0.4
c  b  0.4
c  c  1

後者の唯一の問題は、同じ結果が得られるため、a、b、b、a などの重複があることです。

賢いRコーダーの皆さん、助けてください。答えは行列関数のどこかにあると思いますが、私は十分な R コーダーではありません。

乾杯

4

2 に答える 2

0

ステマーを使用することをお勧めします。これは tm パッケージにあります。距離測定を使用する必要がある場合は、Jaro-winkler ではなくコサイン類似度を使用できます。

于 2015-09-18T01:00:25.080 に答える