質問編集履歴

2

試したことの追記

2018/09/05 22:27

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  [TF-IDFを使ってFAQに回答する](http://tadaoyamaoka.hatenablog.com/entry/2017/04/25/224748)という記事を読みながら実装を進めています。
4
4
 
5
+ TF-IDF値が高い順に出力を得ることを実現したいです。
6
+
5
7
 
6
8
 
7
9
  ### 発生している問題・エラーメッセージ
@@ -118,6 +120,80 @@
118
120
 
119
121
 
120
122
 
123
+ ### 試したこと
124
+
125
+ [類似するコードが載っていた記事](http://ailaby.com/tfidf/)を使って、vectorizer.vocabulary_.items()の振る舞いを確認しようとしましたが、
126
+
127
+ sortを行うとあいうえお順に出力され、sortをしないとただ分かち書きされた単語が順番に出力されるだけだったので、TF-IDF値が高い順に並べることはできないのでしょうか。
128
+
129
+ ```python
130
+
131
+ import numpy as np
132
+
133
+ from sklearn.feature_extraction.text import TfidfVectorizer
134
+
135
+
136
+
137
+ np.set_printoptions(precision=2)
138
+
139
+
140
+
141
+ docs = np.array([
142
+
143
+ 'みぞれ とは 何ですか?', # 文書1
144
+
145
+ '台風 と ハリケーン の 違いは?', # 文書2
146
+
147
+ '異常気象 に ついて'
148
+
149
+ ])
150
+
151
+
152
+
153
+ vectorizer = TfidfVectorizer(use_idf=True)
154
+
155
+ vecs = vectorizer.fit_transform(docs)
156
+
157
+
158
+
159
+ print (vecs.toarray())
160
+
161
+ for k,v in sorted(vectorizer.vocabulary_.items(), key=lambda x:x[1]):
162
+
163
+ print (k)
164
+
165
+ ```
166
+
167
+
168
+
169
+ ```
170
+
171
+ [[ 0. 0.58 0.58 0. 0.58 0. 0. 0. ]
172
+
173
+ [ 0. 0. 0. 0.58 0. 0.58 0. 0.58]
174
+
175
+ [ 0.71 0. 0. 0. 0. 0. 0.71 0. ]]
176
+
177
+ ついて
178
+
179
+ とは
180
+
181
+ みぞれ
182
+
183
+ ハリケーン
184
+
185
+ 何ですか
186
+
187
+ 台風
188
+
189
+ 異常気象
190
+
191
+ 違いは
192
+
193
+ ```
194
+
195
+
196
+
121
197
  ### 補足情報(FW/ツールのバージョンなど)
122
198
 
123
199
 

1

タグの追記

2018/09/05 22:27

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes