2011-08-14 43 views
1

我一直在使用String Score進行很多項目。排序列表非常棒,比如姓名,國家等。尋找更好的javascript文本匹配評分系統

現在,我正在研究一個項目,我想匹配一個更大的文本集合,而不僅僅是幾個詞。就像一段。

鑑於以下兩個字符串:

string1 = "I want to eat."; 
string2 = "I want to eat. Let's go eat. All this talk about eating is making me hungry. Ready to eat?"; 

我想術語eat返回string2爲高於string1。然而,更高的分數string1

string1.score('eat'); 
> 0.5261904761904762 

string2.score('eat'); 
> 0.4477777777777778 

也許我是錯的思維string2應該得分越高,我很想聽聽論點這一邏輯,如果這是你的邏輯。否則,關於更多上下文JavaScript匹配算法的任何想法?

+1

很少看到這樣的問題的JavaScript! +1 – Mrchief

回答

2

如果score不考慮重複那麼只有這樣的"eat"其他事件的無與倫比的垃圾,其對針對總成績處理在string2"eat"一個出現增加了比分。

許多字符串相似性度量以這種方式表現,例如,在Edit distance中,不匹配的字符越多,得分和重複越低被視爲不匹配。

這不是很清楚,我從閱讀​​什麼ALGO它正在使用,但比分變量

var total_character_score = 0, 
    start_of_string_bonus, 
    abbreviation_score, 
    fuzzies=1, 
    final_score; 

似乎並沒有考慮到多次重複。

如果你想要多次出現次數,那麼它聽起來像你想要的不是一個字符串相似性算法,但一個fuzzy match algo,所以你可以找到匹配的數量。

也許yeti witch會爲你工作。

+0

對,這很有道理。我的問題是要找到一個更好的選擇。 – hookedonwinter

+0

@hookedonwinter,請參閱我的編輯。 –

+0

謝謝。我正在調查雪人女巫。你絕對幫助我瞭解我在找什麼,以及搜索的詞彙。非常感謝你的幫忙 :) – hookedonwinter