Loading [MathJax]/extensions/tex2jax.js

動詞の原型を取得 [Python]

8月 9, 2020

なぜかimportの仕方によって、出力結果が異なる

以下のimportだと、sinteringはsinterに変換されるが、heatingはheatにならない。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from nltk.corpus import wordnet as wn
nltk.download('wordnet') # wordnetを取得していないときはこのコマンドでダウンロード
print(wn.morphy('copied'))
>>> copy
print(wn.morphy('sintering'))
>>> sinter
print(wn.morphy('dried'))
>>> dry
print(wn.morphy('heating'))
>>> heating
from nltk.corpus import wordnet as wn nltk.download('wordnet') # wordnetを取得していないときはこのコマンドでダウンロード print(wn.morphy('copied')) >>> copy print(wn.morphy('sintering')) >>> sinter print(wn.morphy('dried')) >>> dry print(wn.morphy('heating')) >>> heating
from nltk.corpus import wordnet as wn

nltk.download('wordnet') # wordnetを取得していないときはこのコマンドでダウンロード

print(wn.morphy('copied'))
>>> copy

print(wn.morphy('sintering'))
>>> sinter

print(wn.morphy('dried'))
>>> dry

print(wn.morphy('heating'))
>>> heating

一方、以下のimportだとheatingがheatに正しく変換される。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
lemmatizer.lemmatize("copied", pos="v")
>>> copy
lemmatizer.lemmatize("sintering", pos="v")
>>> sinter
lemmatizer.lemmatize("dried", pos="v")
>>> dry
lemmatizer.lemmatize("heating", pos="v")
>>> heat
from nltk.stem import WordNetLemmatizer lemmatizer = WordNetLemmatizer() lemmatizer.lemmatize("copied", pos="v") >>> copy lemmatizer.lemmatize("sintering", pos="v") >>> sinter lemmatizer.lemmatize("dried", pos="v") >>> dry lemmatizer.lemmatize("heating", pos="v") >>> heat
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()

lemmatizer.lemmatize("copied", pos="v")
>>> copy

lemmatizer.lemmatize("sintering", pos="v")
>>> sinter

lemmatizer.lemmatize("dried", pos="v")
>>> dry

lemmatizer.lemmatize("heating", pos="v")
>>> heat

なぜこのようなことが起こるのだろうか? 同じWordNetを使っているようにみえるが、lemmatizerとwn.morphyでは変換の方法が異なるのか? この件については後日調査し、なぜか分かり次第追記する。

0

NLTK,Python

Posted by vastee