2013-10-28 48 views
0

是否有任何已知的方式(超出統計分析,但不一定排除它作爲解決方案的一部分),使用自然語言處理將句子或概念彼此關聯起來。到目前爲止,我只與NLTK和Stanford-NLP一起工作來幫助我的項目,但我願意接受其他開源解決方案。提取相關文本給出一個句子,關鍵字或主題

舉例如下喬治奧威爾散文(http://orwell.ru/library/essays/wiw/english/e_wiw)。假設我給應用程序的句子

"What are George Orwell's opinions on writers." 

或許

"George Orwell believes writers enjoy writing to express their creativity, to make a point and for their egos." 

可能會從作文產生線條狀

"The aesthetic motive is very feeble in a lot of writers, but even a pamphleteer or writer of textbooks will have pet words and phrases which appeal to him for non-utilitarian reasons; or he may feel strongly about typography, width of margins, etc." 

"Serious writers, I should say, are on the whole more vain and self-centered than journalists, though less interested in money." 

我明白,這是不容易和我可能無法達到很高的準確度,但我希望能夠提出有關已經存在的和我可以嘗試開始的想法,或者至少基於已知和已知的內容獲得最佳結果。

回答

1

這樣做的最簡單方法可能是使用查詢句子和句子庫之間的一些距離函數(例如餘弦相似度)。這很容易實現。從文本集合中創建一個詞彙表,並將每個句子表示爲一個向量。您可以使用TF-IDF來表示向量中的值,並計算句子之間的餘弦相似度,並獲得關於您的查詢語句的最高得分句子。

或者你可以從你的語料庫建立索引,並使用例如Lucene,讓它爲你做工作。

您還可以考慮使用LSA(潛在語義分析),您可以在其中獲得句子之間的相似性。

+0

我試過其中的一些方法,但他們是最「袋」的技術。我想我更有興趣知道是否有任何已知的方法試圖理解超出匹配詞語的句子中的含義。我知道這是一個困難而深入研究的領域,我在這個時候一直無法找到它的立場。感謝您的迴應! – user2926522

0

從我對你的問題(以及你的評論)的理解中,你是更有興趣瞭解單個句子的含義,然後相互等距。在我看來,統計方法更多的是「理解」句子而不是理解它。在我看來,我會建議深入的解析方法。

深入分析句子,理解單詞在句子中扮演的角色,理解主語 - 動詞 - 賓語模型(從左到右的解析和這些技巧),然後有一個詞彙可以幫助您對名詞和動詞進行分類。

例如

"Serious writers, I should say, are on the whole more vain and self-centered than journalists, though less interested in money." 

解析這句話,讓你理解句子的主題是「嚴肅的作家」(認真是一個形容詞,作家基本上)。在動詞形式中,它陳述「是」(當前狀態)和「感興趣」。每個動詞都會指向更多的詞彙,包括形容詞。如果你以正確的方式安排這個詞彙(並且繼續建設它),我認爲你應該找到解決問題的地方。