這是問題所在。我有一大堆文本文件,包含段落和段落。每個段落都包含幾個人(名字)的引用,並記錄幾個主題(地點,對象)。如何數據挖掘文本?
我該如何利用這個數據庫來組裝一些分類庫?一般來說,2件事。
我不知道我在尋找,so I need a program得到最常用的詞/多個字(「雅各布·史密斯」或「藍水店」或「箭頭」)。
然後知道關鍵字,我需要一個程序來幫助我搜索相關的段落,然後對結果進行排序和細化(手動手動)。
這是問題所在。我有一大堆文本文件,包含段落和段落。每個段落都包含幾個人(名字)的引用,並記錄幾個主題(地點,對象)。如何數據挖掘文本?
我該如何利用這個數據庫來組裝一些分類庫?一般來說,2件事。
我不知道我在尋找,so I need a program得到最常用的詞/多個字(「雅各布·史密斯」或「藍水店」或「箭頭」)。
然後知道關鍵字,我需要一個程序來幫助我搜索相關的段落,然後對結果進行排序和細化(手動手動)。
你的問題是一點點開放式:) 有機會,你會發現你想在UIMA framework做任何分析模塊:
非結構化信息管理應用程序是分析大型軟件系統大量的非結構化信息,以發現與最終用戶相關的知識。一個示例UIM應用程序可能會攝取純文本並識別實體,例如人員,地點,組織;或關係,如工作爲或在位於。 UIMA由許多東西組成
UIMA可以將應用程序分解爲組件,例如「語言識別」=>「語言特定分段」=>「句子邊界檢測」=>「實體檢測(人/地名等等。)」。每個組件實現由框架定義的接口,並通過XML描述符文件提供自描述元數據。該框架管理這些組件以及它們之間的數據流。組件是用Java或C++編寫的;在組件之間流動的數據被設計用於這些語言之間的有效映射。
您可能還會發現Open Calais是一個有用的文本分析API;取決於你的文檔堆有多大,它可能更合適或更不合適。
如果你想要它快速和骯髒 - 創建一個倒排索引,存儲單詞的所有位置(基本上是一個大的單詞映射到它們出現的所有文件ID,這些文件中的段落,段落中的行等)。還索引元組,以便給出一個fileid和段落,你可以查找所有的鄰居。這將完成你所描述的內容,但需要進行相當多的調整才能使其獲得有意義的相關性(一些關鍵字可以讓你開始搜索:信息檢索,TF-IDF,Pearson相關係數)。
聽起來真棒:D ..我會檢查出來,讓你知道,回答評論的答案,好嗎?! – 2009-10-16 00:15:29
看起來你想創建一個索引?
我覺得學習Perl有關於在文本文件中查找單詞的頻率的信息,所以這不是一個特別難的問題。
但是你真的想知道「the」或「a」是最常見的詞嗎?
如果您正在尋找某種形式的話題索引,那麼您真正關心的話可能會在列表中稍微有點混雜,並且混雜着更多你不關心的話。
您可以先從列表前面去除「停用詞」以篩選結果,但沒有任何結果能夠擊敗關聯實際反映段落主題的關鍵字,而這需要上下文。
無論如何,我可能會離開基地,但你去了。 ;)
你問的問題是你不知道你在找什麼。如果你有某種你所關心的術語的加權列表,那麼你的狀態會很好。
語義,這個問題是雙重的:
讓我們假設你已經做了你所要求的事情,併爲你的文本中出現的所有關鍵字產生了一個清晰的列表。會有成千上萬個這樣的關鍵字。在1000個詞條列表中找到「bluewater inn」實際上比在段落中找到它更困難(假設你不知道你在找什麼),因爲你可以瀏覽文本,你會發現包含段落「bluewater inn」因爲它的上下文,但是你無法在列表中找到它,因爲列表沒有上下文。
爲什麼你不談論你的應用程序和過程更多,然後我們可以幫助你更好?
我認爲你想要做的事叫做「entity extraction」。這篇維基百科文章有一個很好的概述和應用程序列表,其中包括開源軟件。我曾經在列表中的一個商業工具上工作,但沒有編程能力,所以我不能幫助你。
Ned Batchelder在DevDays Boston上發表了一篇關於Python的精彩演講。
他提出了一個用Python編寫的拼寫糾正器,它幾乎完全符合您的需求。
您可以找到幻燈片和源代碼在這裏: http://nedbatchelder.com/text/devdays.html
我建議你有a look at R。尤其要看tm
包。這裏有一些相關的鏈接:
更一般地,還有大量的文本挖掘軟件包on the Natural Language Processing view on CRAN。
這通常被稱爲「文本挖掘」。 – Shane 2009-10-31 17:03:52