作为机器学习的新手,我在解析给定的句子时遇到了困难。”我在河的左边。”我尝试了很多方法,但始终无法得到准确的解决方案。
回答:
市面上有多种语言解析器可用,但具体选择哪一种取决于你的需求。可以查看以下资源来开始学习:
在谷歌搜索sentence parser
,你会得到一个庞大的列表
以下是使用斯坦福解析器的结果:
NLP> 我是在河的左边。Sentence #1 (9 tokens):我在河的左边。[Text=I CharacterOffsetBegin=0 CharacterOffsetEnd=1 PartOfSpeech=PRP Lemma=I NamedEntityTag=O] [Text=am CharacterOffsetBegin=2 CharacterOffsetEnd=4 PartOfSpeech=VBP Lemma=be NamedEntityTag=O] [Text=in CharacterOffsetBegin=5 CharacterOffsetEnd=7 PartOfSpeech=IN Lemma=in NamedEntityTag=O] [Text=the CharacterOffsetBegin=8 CharacterOffsetEnd=11 PartOfSpeech=DT Lemma=the NamedEntityTag=O] [Text=left CharacterOffsetBegin=12 CharacterOffsetEnd=16 PartOfSpeech=JJ Lemma=left NamedEntityTag=O] [Text=side CharacterOffsetBegin=17 CharacterOffsetEnd=21 PartOfSpeech=NN Lemma=side NamedEntityTag=O] [Text=of CharacterOffsetBegin=22 CharacterOffsetEnd=24 PartOfSpeech=IN Lemma=of NamedEntityTag=O] [Text=river CharacterOffsetBegin=25 CharacterOffsetEnd=30 PartOfSpeech=NN Lemma=river NamedEntityTag=O] [Text=. CharacterOffsetBegin=30 CharacterOffsetEnd=31 PartOfSpeech=. Lemma=. NamedEntityTag=O] (ROOT (S (NP (PRP I)) (VP (VBP am) (PP (IN in) (NP (NP (DT the) (JJ left) (NN side)) (PP (IN of) (NP (NN river)))))) (. .)))root(ROOT-0, am-2)nsubj(am-2, I-1)det(side-6, the-4)amod(side-6, left-5)prep_in(am-2, side-6)prep_of(side-6, river-8)
nltk解析器:
>>> nltk.parse.chart.demo(3, print_times=False, trace=0,... sent='我看到约翰和一只狗', numparses=2)* Sentence:我看到约翰和一只狗['我', '看到', '约翰', '和', '一只', '狗']* Strategy: Bottom-up left-cornerNr edges in chart: 36(S (NP 我) (VP (VP (Verb 看到) (NP 约翰)) (PP 和 (NP (Det 一只) (Noun 狗)))))(S (NP 我) (VP (Verb 看到) (NP (NP 约翰) (PP 和 (NP (Det 一只) (Noun 狗))))))