我想使用NLTK来识别“红色连衣裙”和“礼服鞋”之间的区别。两者的词性相同,我尝试过的所有标记器都没有起作用。
我知道POS标记器一次只能拾取一个令牌,这带来了一些问题。我是NLTK的新手,我敢肯定我只是在这里错过了一些非常基本的东西。
答案 0 :(得分:2)
尝试Spacy
pip install spacy
这是一个解析和可视化"dress shoes"
的小例子:
import spacy
from spacy import displacy
nlp = spacy.load('en')
doc = nlp("dress shoes")
displacy.serve(doc, style='dep')
red
(形容词)与dress
(名词)之间的关系是形容词修饰语(amod
),而{{1}之间的关系}(名词)和dress
(名词)是化合物。
可以通过shoes
(用于依赖性)和token.dep_
(用于词性)访问这些内容。 Documentation here