我想检查句子是否具有特定的词性标记结构。我可以使用python自然语言工具包吗?如果是这样,怎么样?
答案 0 :(得分:0)
检查此代码。使用python中的NLTK包,您可以定义
import nltk
sentence = "I want to check if a sentence has a specific parts of speech tag structure."
tagged = nltk.pos_tag(nltk.word_tokenize(sentence))
grammar = r"""
NP:
{<NNS><IN><NN><NN><NN>}
{<PRP><VBP>}
"""
cp = nltk.RegexpParser(grammar)
result = cp.parse(tagged)
print result
结果将是这样的
(S
(NP I/PRP want/VBP)
to/TO
check/VB
if/IN
a/DT
sentence/NN
has/VBZ
a/DT
specific/JJ
(NP parts/NNS of/IN speech/NN tag/NN structure/NN)
./.)
正如您所看到的,它将nltk树作为输出,其中(NP parts/NNS of/IN speech/NN tag/NN structure/NN)
与一个名为&#34; NP&#34;的单个标记组合在一起。在我们的语法中定义。您可以根据自己的要求定义此结构。我希望它有所帮助。
答案 1 :(得分:-1)
spaCy
是一个易于使用的NLP和POS标记界面。您可以使用spaCy
轻松提取词性。下面的代码来自他们的网站(略微适应只看POS):
import spacy
nlp = spacy.load('en')
doc = nlp(u'They told us to duck.')
for word in doc:
print(word, word.tag, word.tag_, word.pos, word.pos_)
返回:
They 479 PRP 93 PRON
told 489 VBD 98 VERB
us 479 PRP 93 PRON
to 486 TO 92 PART
duck 474 NN 90 NOUN
. 453 . 95 PUNCT