質問編集履歴

1 コードの追加、環境

ryuuu.ss

ryuuu.ss score 18

2017/11/07 16:16  投稿

tf(Term Frequency)とdf(Document Frequency)の求め方
記事ごとの名詞を格納した2次元リスト
イメージとして
noun = [['私','子育て','問題','問題']['トランプ','今朝','会談','来日']・・・]
「私、子育て、問題」は記事1の名詞集、「トランプ、今朝、会談、来日」は記事2の名詞集
みたいなものを作りました。
そして以下のようにtfとdfを定義して求めたいと思いました。
tf = ある単語の記事内での出現回数 / 記事内のすべての単語の出現回数の和
例えば上の例なら、私:1/4 子育て:1/4 問題:2/4
df = ある単語が出現する記事の数
例えば私という単語が他の記事5つにも出てくるなら私のdf値は5です。
それでtfを求めるためにCounterのmost_commonを使って全単語の出現回数をカウントすることはできたのですが、この出現回数を全部足しすのどうやるんだってところで詰んでしまいました。。。
tfとdfを求めるためのアルゴリズム、手順をご教授いただけないでしょうか(汗)
tfとdfを求めるためのアルゴリズム、手順をご教授いただけないでしょうか(汗)
<追記>コードはこんな感じです。
nounsというリストが上で説明したような名刺を入れている2次元のリストになります。
また、jupyter notebookでコードを書いています。
```
from collections import Counter
def flatten_2dim(array):
   return [item for sublist in array for item in sublist]
counter = Counter(flatten_2dim(nouns))
for word, cnt in counter.most_common():
   print(word, cnt)
```
  • Python 3.x

    18988 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • リストボックス

    215 questions

    ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

  • Jupyter

    1629 questions

    Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る