teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

内容追記

2017/02/02 05:24

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -4,6 +4,7 @@
4
4
  失礼しました。こちらの環境での再現ミスでした。上記でもだめ(0になる)でした。
5
5
 
6
6
  **float**(値)で実数に変換するように修正することで、2.7環境でも3.xと同じ値が出力されるようになりました。
7
+ 整数同士の演算結果の違いが原因だと思われます(2.7→int, 3.0→float)
7
8
  ```Python
8
9
  :
9
10
  return list(map(lambda x:float(x)/sum(tf_values), tf_values))

2

内容追記

2017/02/02 05:24

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,4 +1,12 @@
1
1
  2.7環境では提示された結果になりますね。
2
2
 
3
3
  ~~ unicode型(**u**"リンゴ"など)で渡すと正しい結果が得られました。 ~~
4
- 失礼しました。こちらの環境での再現ミスでした。上記でもだめ(0になる)でした。
4
+ 失礼しました。こちらの環境での再現ミスでした。上記でもだめ(0になる)でした。
5
+
6
+ **float**(値)で実数に変換するように修正することで、2.7環境でも3.xと同じ値が出力されるようになりました。
7
+ ```Python
8
+ :
9
+ return list(map(lambda x:float(x)/sum(tf_values), tf_values))
10
+ :
11
+ return [math.log10(float(len(documents))/sum([bool(term in document) for document in documents])) for term in terms]
12
+ ```

1

内容修正

2017/02/02 05:20

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,7 +1,4 @@
1
1
  2.7環境では提示された結果になりますね。
2
+
2
- unicode型(**u**"リンゴ"など)で渡すと正しい結果が得られました。
3
+ ~~ unicode型(**u**"リンゴ"など)で渡すと正しい結果が得られました。 ~~
3
- ```Python
4
- terms = [u"リンゴ", u"ゴリラ", u"ラッパ"]
5
- documents = [u"リンゴ、リンゴ", u"リンゴとゴリラ", u"ゴリラとラッパ"]
6
- print(tf_idf(terms, documents))
4
+ 失礼しました。こちらの環境での再現ミスでした。上記でもだめ(0になる)でした。
7
- ```