プロジェクト間のコメントの単語の類似度の測定


プロジェクト間のコメントの単語の類似度の測定

Bash on Ubuntu on Windowsで動きます.

1.全てのコメントを抽出
2.コメントを形態素解析し,名詞を抽出
3.名詞それぞれをベクトル化し,コサイン類似度を測る

必要なソフトウェアのダウンロード

全てのコメントの抽出
https://qiita.com/SatoshiTanoue/private/58d6662cb38505c901d

mecabのインストール

$ sudo apt-get install mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8

numpyのインストール

$ sudo apt install python3-pip
$ pip3 install numpy 

プログラムのダウンロード

$ git clone https://github.com/SatoshiTanoue/CosineSimilarity.git

実行

1.全てのコメントを抽出

ここで,プロジェクトごとに全てのコメントの解析結果のディレクトリを分ける必要がある.
例,プロジェクトAの全てのコメントを入れたディレクトリ
  プロジェクトBの全てのコメントを入れたディレクトリ
  
下記の方法では,コメントを全て同じディレクトリに入れてしまうので,プロジェクトごとに解析結果を別のディレクトリに手動で分ける必要がある.
  
全てのコメントを抽出の方法は,下記を参照
https://qiita.com/SatoshiTanoue/private/58d6662cb38505c901de

2.コメントを形態素解析し,名詞を抽出

文字コードをutf-8に変更.

$ cd CosineSimilarity
$ mkdir UTF8
$ mkdir UTF8/projectA 
$ mkdir UTF8/projectB
$ sh converter.sh ディレクトリまでのパス #projectAのすべてのコメントを抽出したファイルがあるディレクトリまでのパスを入れる.
#例 sh converter.sh SampleResult/projectA
$ mv UTF8/*.txt UTF8/projectA/
$ sh converter.sh ディレクトリまでのパス #projectBのすべてのコメントを抽出したファイルがあるディレクトリまでのパスを入れる.
#例 sh converter.sh SampleResult/projectB
$ mv UTF8/*.txt UTF8/projectB/

コメントを形態素解析し,名詞を抽出

$ sh mecab.sh UTF8/projectA/ > resultA.txt 
$ sh mecab.sh UTF8/projectB/> resultB.txt 

二つの結果をマージして,result.txtを作る.

$ sh mearge.sh resultA.txt resultB.txt

ディレクトリまでのパスは,全てのコメントの抽出を記述する.

3.名詞それぞれをベクトル化し,コサイン類似度を測る

結果の例

$ python3 CosineSimilarty.py
[ 1.  0.  1.  1.  1.  1.  1.  1.  1.  0.  1.  1.  1.  1.  1.  1.  1.  1.
  0.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  0.  1.  1.  1.  0.
  1.  1.  1.  0.  1.  1.  1.  1.  1.  0.  1.  0.  1.  1.  1.  0.  0.  1.
  1.  1.  1.  1.  1.  1.  0.  1.  1.  0.  1.  1.  0.  1.  1.  1.  1.  1.
  1.  1.  0.]
[ 0.  1.  1.  1.  0.  1.  0.  1.  0.  1.  1.  1.  0.  0.  1.  0.  1.  1.
  1.  1.  1.  0.  0.  0.  0.  0.  1.  0.  1.  1.  1.  1.  0.  1.  0.  1.
  1.  1.  0.  1.  0.  0.  1.  0.  1.  1.  0.  1.  0.  1.  0.  1.  1.  1.
  1.  0.  1.  0.  0.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  0.
  1.  1.  1.]
0.640184399664

よくわからなくなったとき

$ cd ..
$ rm -rf CosineSimilarty
$ git clone https://github.com/SatoshiTanoue/CosineSimilarity.git

をして,手順2に戻ってください

コメント

限定公開で公開していました、せっかくなので全体公開にしました。