Anacondaの古いバージョンを取得するには
Anacondaの古いバージョンは、「Anaconda installer archive」からダウンロードできます。
最新版で問題があるときは、古いバージョンを試してみると良いかもしれません。
Anacondaの古いバージョンを取得するには
Anacondaの古いバージョンは、「Anaconda installer archive」からダウンロードできます。
最新版で問題があるときは、古いバージョンを試してみると良いかもしれません。
Python(Anaconda)を使っていて、pipでインストールしようとしたら、次のようなエラーになった。
TypeError: parse() got an unexpected keyword argument 'transport_encoding'
次のコマンドを実行したら、インストールできるようになった。
conda install -c anaconda html5lib
PythonでJanomeを使って形態素解析した結果をファイルに保存する方法です。
「PythonでJanomeを使って形態素解析」のコメント欄で質問をもらったので、書いておきます。
実行環境は
$ python3 --version
Python 3.5.2
ソースコードです。
from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()
with open("token.txt", "w") as fp:
for token in tokenizer.tokenize("すもももももももものうち"):
fp.write(str(token))
fp.write("\n")
実行結果
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
JanomeはPythonで書かれた形態素解析のライブラリです。
インストールが簡単で、Mecabをインストールできない環境でも使用できる点が魅力です。
次のコマンドでインストールできます。
pip install janome
Tokenizerをインポートします。
>>> from janome.tokenizer import Tokenizer
Tokenizerオブジェクトを作ります。
>>> tokenizer = Tokenizer()
Tokenizerオブジェクトのtokenize()メソッドに解析する文字列を渡します。
返り値はTokenオブジェクトのlistです。
>>> for token in tokenizer.tokenize("すもももももももものうち"):
... print(token)
...
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
tokenize()メソッドの引数streamにTrueを指定すると、返り値がgeneratorになります。
tokenize()メソッドの引数wakatiにTrueを指定すると、返り値が表層形(surface)のみになります。
>>> for token in tokenizer.tokenize("すもももももももものうち", wakati=True):
... print(token)
...
すもも
も
もも
も
もも
の
うち
Tokenオブジェクトは、次のインスタンス変数を持ちます。
surface (表層形)
part_of_speech (品詞)
infl_type (活用型)
infl_form (活用形)
base_form (基本形)
reading (読み)
phonetic (発音)
node_type
実行例
>>> tokens = tokenizer.tokenize("吾輩は猫である")
>>> print(tokens[0])
吾輩 名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
>>> tokens[0].surface
'吾輩'
>>> tokens[0].part_of_speech
'名詞,代名詞,一般,*'
>>> tokens[0].infl_type
'*'
>>> tokens[0].infl_form
'*'
>>> tokens[0].base_form
'吾輩'
>>> tokens[0].reading
'ワガハイ'
>>> tokens[0].phonetic
'ワガハイ'
part_of_speechはカンマ区切りなので、次のようにして値を取得できます。
>>> tokens[0].part_of_speech.split(',')[0]
'名詞'
>>> tokens[0].part_of_speech.split(',')[1]
'代名詞'
>>> tokens[0].part_of_speech.split(',')[2]
'一般'
>>> tokens[0].part_of_speech.split(',')[3]
'*'
実行環境