2010-10-18 90 views
1

我正在做一個實驗項目。如何從文本中查找關鍵字(有用詞)?

我想要實現的是,我想找到那個文本中的關鍵字是什麼。

我是如何做到這一點的,我列出了一個單詞在最常用的單詞排序的文本中出現的次數。

但是問題是一些常見的詞是,總是在頂部。顯然這些都不值得。

你們可以建議我做一些很好的邏輯,所以它總是找到好的相關關鍵字嗎?

+0

有沒有已知的圖書館? 我知道python有一些很棒的庫: http://term-extraction.appspot.com/ http://www.five-filters.org我也在尋找一個PHP解決方案來獲取關鍵字。 – 2012-12-31 20:21:45

回答

5

使用類似Brill Parser的東西來識別不同的詞類,如名詞。然後只提取名詞,並按頻率排序。

+0

非常有用的鏈接 – Arshdeep 2010-10-18 16:25:55

1

那麼你可以使用preg_split來獲取單詞列表以及它們發生的頻率,我假設這就是你迄今爲止工作的一點。

我能想到的關於剝離不重要的單詞的事情是讓你想要忽略的單詞詞典包含「a」,「我」,「」,「和」等。字典來過濾掉不需要的單詞。

你爲什麼要這樣做,是爲了搜索頁面內容?如果是這樣,那麼大多數後端數據庫提供了某種文本搜索功能,例如MySQL和Postgres都有一個全文搜索引擎,可以自動丟棄不重要的單詞。我建議使用您正在使用的後端數據庫的全文特徵,因爲他們已經在實施符合要求的東西了。

+0

我也想到了這一點,忽略了一些已知的不值得的單詞。但問題是我不是母語英語的人,所以我在基本語法規則方面很薄弱。我認爲不值得的單詞列表將會很長。我可以列出一個名單嗎(我不知道這個名字可能是什麼名字,可能是「他是我,我」字)的「第一人」。 – Arshdeep 2010-10-18 16:19:05

+0

「我」,「你」,「他」,「她」,「它」,「我們」,「他們」都是人稱代詞 – 2010-10-18 16:51:41

0

我的第一種方法就是比純編程更數學的建模。

有兩種「簡單」的方式可以攻擊這樣的問題; a)排除列表(懲罰你認爲無用的單詞集合)b)使用權重函數,例如,因此,諸如介詞(in,at ...)和代詞(I,you,me,his ...)這樣的小單詞將受到懲罰,並且有希望落入中間表

我不是當然,如果這是你正在尋找的,但我希望它有幫助。順便說一句,我知道上下文文本處理是一個積極研究的主題,你可能會發現一些可能有趣的項目。

+0

你可能會覺得這很有趣:http://martin.ankerl的.com/2007/01/09/textanalyzer-自動提取物特性字/ – Attilio 2013-03-13 05:31:12