質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

1回答

2674閲覧

pythonでfasttextの出力が空になる

maru270

総合スコア6

Python 3.x

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

0グッド

0クリップ

投稿2019/02/24 02:52

編集2019/02/26 01:45

pythonでfasttextの分析を使いたいのですが、実行結果が空になってしまいます。
ネットで調べたところ同じ問題の質問を見つけたのですが未解決でしたので改めて質問させていただきます
https://teratail.com/questions/154512

環境
OS:windows10
python:3.6.5
fasttext:0.8.3

該当のソースコード

python

1import fasttext as ft 2import MeCab 3 4class predict: 5 6 def get_surfaces(self, content): 7 8 tagger = MeCab.Tagger('') 9 tagger.parse('') 10 surfaces = [] 11 node = tagger.parseToNode(content) 12 13 while node: 14 surfaces.append(node.surface) 15 node = node.next 16 17 return surfaces 18 19 def value_class(self, content): 20 21 words = " ".join(self.get_surfaces(content)) 22 print(words) 23 classifier = ft.load_model("model.bin") 24 estimate = classifier.predict_proba([words], k=3) 25 print(estimate) 26 27if __name__ == '__main__': 28 pre = predict() 29 pre.value_class("ここに文章を入力") 30

実行結果

ここ に 文章 を 入力
[[]]

追記

学習済みモデルはpythonからでも生成できたのでそれを使いました
exeを直接使って生成したモデルとネット上に配布されていたモデルも試してみましたがダメでした

pythonでのモデル生成部分は以下の通りです

python

1import fasttext as ft 2 3input_file = 'model.txt' 4output_file = 'model' 5ft.supervised(input_file, output_file)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2019/02/25 05:29 編集

学習済みのモデルをどうやって得たかを書いていただけますか
maru270

2019/02/26 00:33

学習済みモデルはpythonからでも生成できたのでそれを使いました exeを直接使って生成したモデルとネット上に配布されていたモデルも試してみましたがダメでした pythonでのモデル生成部分は以下の通りです import fasttext as ft input_file = 'model.txt' output_file = 'model' ft.supervised(input_file, output_file)
quickquip

2019/02/26 01:17

情報は質問に追記するようにしてください。(質問は編集可能です)
maru270

2019/02/26 01:46

すいません追記しました よろしくお願いします
guest

回答1

0

他の人が検証するには情報が全然足りないので質問する形の回答になりますが。

predict().get_surfaces("ここに文章を入力") の結果が期待通りなのか確認していますか?

対話環境でいいのですが、

python

1import fasttext 2with open('data', 'w') as w: 3 print('__label__1 1', file=w) 4 print('__label__2 a', file=w) 5 6fasttext.supervised('data', 'model') 7classifier = fasttext.load_model("model.bin") 8classifier.predict_proba(['1'], k=3) 9classifier.predict_proba(['a'], k=3)

の動作を確認できますか?

plain

1>>> import fasttext 2>>> with open('data', 'w') as w: 3... print('__label__1 1', file=w) 4... print('__label__2 a', file=w) 5... 6>>> fasttext.supervised('data', 'model') 7<fasttext.model.SupervisedModel object at 0x10ad9b320> 8>>> classifier = fasttext.load_model("model.bin") 9>>> classifier.predict_proba(['1'], k=3) 10[[('__label__1', 0.505859), ('__label__2', 0.492188)]] 11>>> classifier.predict_proba(['a'], k=3) 12[[('__label__2', 0.505859), ('__label__1', 0.492188)]]

みたいになると思いますが。
とにかく可能な限り小さいコードから検証していくのがいいと思います。

バージョンやimportの名前から察するに2年前に更新が終了しているhttps://github.com/pyk/fastText.pyを使っていると思いますが、Facebookオフィシャルのhttps://github.com/facebookresearch/fastTextを使わない理由はありますか?
古い記事通りに動かしたいとかそういうことでしょうか?
(古いものを使うのもどうかと思いましたので)

投稿2019/02/27 00:29

quickquip

総合スコア11038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問