2014-04-21 71 views
2

是否有任何知名或成功的算法從句子問題的單詞中獲得句子(問題)的主題和/或焦點?算法來獲得句子中的話題/句子焦點

如果不是,我將如何獲得有關問題的主題/焦點。看來問題的主題/焦點通常是名詞或名詞短語。

所以我要做的第一件事就是通過Part Of Speech標記問題來確定名詞。但是我怎麼知道我是否應該只知道名詞,名詞和一個形容詞,或者名詞和前面的副詞,或者名詞和動詞?

例如:

在「做那隻懶狗的敏捷的棕色狐狸跳」,讓「有緣」,「跳」,和「懶惰的狗」。

在「什麼是日本的人口」,得到「人口」和「日本」

在「是什麼顏色的牛奶」得到「顏色」和「奶」

在'是什麼山的高度珠穆朗瑪峯'得到'山。 Everst'和'高度'。

雖然寫這些我猜最簡單的方法是刪除停用詞。

+0

你能舉一個你想要的例子嗎? –

+0

你知道,自然語言處理不是由算法本身完成的。圍繞這個問題有很多研究。我不認爲你會在SO上提出一個問題來學習它。 –

+0

@RobNeuhaus更新了問題。 –

回答

2

我個人找到stanford nlp工具非常有效。

Here是鏈接到斯坦福解析器

的演示對於這個例子,並懶狗的敏捷的棕色狐狸跳 你得到的輸出是

did/VBD 
the/DT 
quick/JJ 
brown/JJ 
fox/NN 
jump/VB 
over/RP 
the/DT 
lazy/JJ 
dog/NN 

從輸出你可以編寫一個提取器來提取名詞(如果需要的話,形容詞和副詞),從而從句子中獲得主題。

此外,解析樹看起來像

(ROOT 
    (SINV (VBD did) 
    (NP (DT the) (JJ quick) (JJ brown) (NN fox)) 
    (VP (VB jump) 
     (PRT (RP over)) 
     (NP (DT the) (JJ lazy) (NN dog))))) 

如果你把在解析樹仔細一看,你期望的輸出都是在NP(名詞短語) - 敏捷的棕色狐狸和懶惰狗。

我希望這有助於!

+0

是的,非常!你能否向我解釋解析樹以及如何執行提取器?我知道如何爲PoS標記單詞,但是如何在代碼中實現解析樹抽取? –

4

我認爲這個問題首先是語言相關的。其次,我認爲如果你有一組單詞,你可以在語言中檢查它們的流行度/頻率; F.E.單詞「the」經常出現,因爲「euphoric」=> euphoric這個詞更有可能成爲一個合適的關鍵詞。

然而,拼寫的重要性至關重要。如何處理這個?一個想法是使用Levenshtein等距離算法來處理不經常出現的單詞(或者用單詞進行谷歌搜索,並檢查是否得到結果或者是否「通過了」) - 通知

有些語言雖然比其他語言更結構化。在英語中找到名詞,你可以先用「一個/一個單詞」進行檢查,然後用「s」結尾的單詞找到可能的名詞候選詞。然後與字典進行比較。

用形容詞,你或許可以假設一個可能的形容詞將位於名詞前面。然後,將可能的形容詞與詞典進行比較。

然後,你當然可以保留一個從不被允許作爲關鍵字的黑名單。

最好的解決辦法或許是具有自學習神經系統,但我不那麼熟悉這些給這可以被看作是一個分析問題的任何建議

+0

謝謝,這爲我清除了一些東西。現在學習如何製作一個自學習神經系統。 –

+0

沒問題。希望它有任何幫助!名詞和形容詞的識別仍然需要詳細說明:) –