0
我被要求猜想當部分預期數據丟失時,用戶意圖。例如,如果我想要獲得very well
或not very well
,但我只能獲得not
,則應將其標記爲not very well
。Levenshtein成本設置
爲not
和very well
的Levenshtein距離是9
和not
和not very well
的距離爲10
。我想我實際上是試圖用扳手驅動螺絲釘,但我們已經同意在我們的團隊中使用Levenshtein來處理這種情況。
正如你所看到的上述問題,反正是有,如果我可以通過改變插入,更換和刪除成本使得一些感覺出來的嗎?
P.S.我不想爲這個特定的例子找一個黑客。我想要的東西一般按預期工作,並在這些情況下也輸出更好的結果。
探測法可能是一個更好的算法:https://en.wikipedia.org/wiki/Soundex。 「不」和「杯」具有相同的水平距離。 IMO,「if(str.match(/^\ s * [nN])){str ='not well well'} else {str ='very well'}」更簡單。 –
@glennjackman我100%同意你的觀點。這就是我所提供的,但論點是它可能無法像其他語言那樣運行,而不是英語。無論如何,我會再次與我們的團隊合作。 – Mahdi