1
我想從句子中提取句法信息。我曾嘗試是如何使用corenlp提取python的語法特徵?
corenlp_dir = "/home/corenlp-python/stanford-corenlp-full-2013-11-12/"
parser = corenlp.StanfordCoreNLP(corenlp_path=corenlp_dir)
result_json = json.loads(parser.parse("I am Alice."))
#pprint.pprint(result_json)
for sentence in result_json["sentences"]:
pprint.pprint(sentence["parsetree"])
print type(sentence["parsetree"])
我只得到
--># u'(ROOT (S (NP (PRP I)) (VP (VBP am) (NP (NNP Alice))) (. .)))'
<type 'unicode'>
,結果是一個字符串,而不是parsertree。 但是,我真正想要的就像是一個可用於進行文本分類的語法功能。如何從上面的結果中提取特定的語法特徵? 我對如何去做沒有想法。任何人都可以幫我或給我一些建議嗎?
感謝您的回答。我是NLP的新手。我已經理解了「parsetree」的含義。但我真的不知道如何在句法上標記單詞,比如「I」,它與POS不一樣。你能給我一些想法嗎? – allenwang 2014-11-06 11:39:57
'I'的POS標籤在最接近的括號內是'PRP'。這個過程被稱爲POS標記。然後你得到這個PRP是'NP'(名詞短語),一個NP可以是一個單詞,但通常是一個短語。現在你得到一些更大的單位,將句子分成幾部分稱爲分塊。從單元構建一個樹狀結構,整個過程是分析這個句子的語法。 – eastdog 2014-11-07 10:09:20
謝謝你的回答,但ROOT的功能是什麼?例如,在生產規則中,如S-> NP + PRP,我們不需要ROOT,對吧? – allenwang 2014-11-07 15:25:36