回答編集履歴
2
修正
    
        answer	
    CHANGED
    
    | @@ -16,7 +16,7 @@ | |
| 16 16 | 
             
            """
         | 
| 17 17 | 
             
            ```
         | 
| 18 18 |  | 
| 19 | 
            -
            余談ですが、tfidfの計算もsklearnで楽に行なえます。分かち書きされた | 
| 19 | 
            +
            余談ですが、tfidfの計算もsklearnで楽に行なえます。分かち書きされた文字列のリストを渡せば良いです。日本語でちゃんと動かすには、`analyzer`を自分で定義するなどする必要があります。
         | 
| 20 20 |  | 
| 21 21 | 
             
            https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html
         | 
| 22 22 |  | 
| @@ -28,16 +28,16 @@ | |
| 28 28 | 
             
                    "電車 が 空い た",
         | 
| 29 29 | 
             
                    "りんご が いっぱい"]
         | 
| 30 30 |  | 
| 31 | 
            -
            tfidf = TfidfVectorizer()
         | 
| 31 | 
            +
            tfidf = TfidfVectorizer(analyzer=lambda s:s.split())
         | 
| 32 32 | 
             
            vectors = tfidf.fit_transform(data).toarray()
         | 
| 33 33 | 
             
            print(tfidf.get_feature_names())
         | 
| 34 34 | 
             
            print(vectors)
         | 
| 35 35 | 
             
            """ =>
         | 
| 36 | 
            -
            ['いっぱい', 'お腹', 'りんご', '空い', '電車']
         | 
| 36 | 
            +
            ['いっぱい', 'お腹', 'が', 'た', 'りんご', '空い', '電車']
         | 
| 37 | 
            -
            [[0.         0. | 
| 37 | 
            +
            [[0.         0.53931298 0.35696573 0.53931298 0.         0.53931298        0.        ]
         | 
| 38 | 
            -
             [0. | 
| 38 | 
            +
             [0.64043405 0.64043405 0.42389674 0.         0.         0.                0.        ]
         | 
| 39 | 
            -
             [0.         0.         0.         0.6191303  0.78528828]
         | 
| 40 | 
            -
             [0. | 
| 39 | 
            +
             [0.         0.         0.32902288 0.4970962  0.         0.4970962         0.6305035 ]
         | 
| 40 | 
            +
             [0.5728925  0.         0.37919167 0.         0.72664149 0.                0.        ]]
         | 
| 41 41 | 
             
            """
         | 
| 42 42 | 
             
            ```
         | 
| 43 43 |  | 
1
追記
    
        answer	
    CHANGED
    
    | @@ -14,4 +14,31 @@ | |
| 14 14 | 
             
             [0.44631947 0.         0.1162559 ]
         | 
| 15 15 | 
             
             [0.14469177 0.1162559  0.        ]]
         | 
| 16 16 | 
             
            """
         | 
| 17 | 
            -
            ```
         | 
| 17 | 
            +
            ```
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            余談ですが、tfidfの計算もsklearnで楽に行なえます。分かち書きされたテキストのリストを渡せば良いです。
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            ```python
         | 
| 24 | 
            +
            from sklearn.feature_extraction.text import TfidfVectorizer
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            data = ["お腹 が 空い た",
         | 
| 27 | 
            +
                    "お腹 が いっぱい",
         | 
| 28 | 
            +
                    "電車 が 空い た",
         | 
| 29 | 
            +
                    "りんご が いっぱい"]
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            tfidf = TfidfVectorizer()
         | 
| 32 | 
            +
            vectors = tfidf.fit_transform(data).toarray()
         | 
| 33 | 
            +
            print(tfidf.get_feature_names())
         | 
| 34 | 
            +
            print(vectors)
         | 
| 35 | 
            +
            """ =>
         | 
| 36 | 
            +
            ['いっぱい', 'お腹', 'りんご', '空い', '電車']
         | 
| 37 | 
            +
            [[0.         0.70710678 0.         0.70710678 0.        ]
         | 
| 38 | 
            +
             [0.70710678 0.70710678 0.         0.         0.        ]
         | 
| 39 | 
            +
             [0.         0.         0.         0.6191303  0.78528828]
         | 
| 40 | 
            +
             [0.6191303  0.         0.78528828 0.         0.        ]]
         | 
| 41 | 
            +
            """
         | 
| 42 | 
            +
            ```
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            特別な理由がなければ自分で書く必要はありません。
         | 
