下面是問題 - 我有幾千個小文本片段,從幾個字到幾個句子的任何地方 - 最大的片段大約是磁盤上的2k。我想能夠比較每個,並計算相關性因素,以便我可以顯示用戶的相關信息。找到兩個文本主體的「相關性」有哪些好方法?
有什麼好方法可以做到這一點?是否有已知的算法可以做到這一點,是否有任何GPL解決方案等?
我不需要這個實時運行,因爲我可以預先計算一切。我更關心的是獲得比運行時更好的結果。
我只是想在去寫自己的東西之前問Stack Overflow社區。那裏有人在那裏找到了很好的解決方案。
下面是問題 - 我有幾千個小文本片段,從幾個字到幾個句子的任何地方 - 最大的片段大約是磁盤上的2k。我想能夠比較每個,並計算相關性因素,以便我可以顯示用戶的相關信息。找到兩個文本主體的「相關性」有哪些好方法?
有什麼好方法可以做到這一點?是否有已知的算法可以做到這一點,是否有任何GPL解決方案等?
我不需要這個實時運行,因爲我可以預先計算一切。我更關心的是獲得比運行時更好的結果。
我只是想在去寫自己的東西之前問Stack Overflow社區。那裏有人在那裏找到了很好的解決方案。
這些文章可能會有所幫助。而這個問題關於Latent Semantic Analysis。
您還可以查看Soundex中「發音相似」的發音。
謝謝。潛在的語義分析看起來很有前途,我將不得不閱讀並看看實現它。 – Matt 2009-08-31 19:07:36
我從來沒有使用過它,但你可能想看看Levenshtein distance
在很多情況下都能很好地工作 – 2009-08-31 18:19:52
Levenshtein給出了編輯距離,而不是語義差異。 – Bob 2009-08-31 18:27:38
傑夫談到對鑄造這裏找到右側列出的相關問題莢這樣的事情。 (in podcast 32)
一大提示是刪除所有common words,如「the」和「this this」等。這將爲您留下更有意義的單詞進行比較。
這裏是一個類似的問題Is there an algorithm that tells the semantic similarity of two phrases
對於合理的大文本,這是相當可行的,然而對於較小的文本來說這很難。
我做到了一次這樣的,它工作得很好:
查看Manning和Raghavan關於MinHashing和搜索相似項目的筆記以及C#(?) version。我相信這些技術來自於Ullman和Motwani的研究。
語音算法
文章,Beyond SoundEx - Functions for Fuzzy Searching in MS SQL Server,展示瞭如何安裝和使用SimMetrics庫到SQL Server。這個庫可以讓你找到字符串之間的相對相似性,並且包含許多算法
我最終使用Jaro Winkler來匹配名稱。以下是我詢問有關SO上匹配名稱的更多信息:Matching records based on Person Name
一些基於Levenshtein Distance的算法也可在SimMetric庫中找到,並且可能在您的應用程序中很有用。
非常欠定義的問題。你認爲兩個文本是相互關聯的?常見主題?重複的短語?長度?複雜?字母頻率? – 2009-08-31 18:17:40