如何找到與其他單字相近的單字?

如何找到與其他單字相近的單字?

我將創建一個字典,用戶可以透過發音和單字字母找到彼此接近的每個單字。

例如當使用者搜尋時靠近我的網站會傳回與之相近的其他單字,例如近,梨,親愛的,後方,這裡

怎麼做?

喜歡這個網站:韻區

答案1

我認為這相當複雜。它是自然語言程式設計的一個分支(不是另一個 NLP,神經語言學 Pap)。您需要能夠匹配“here”和“hear” - 因此您需要分解元素,並將它們映射到語音等效項(h-“ere”和 h-“ere”)。有些拼字有不同的語音(咳嗽、犁、通過),或有更糟糕的同音異義詞(那裡、他們是、他們的群體),而且這些拼字可能因地區而異(在英國,車庫中的長或短“a”,例如圖表和玻璃)。當您進行語音對等時,它們並不總是單數。

一旦您獲得了語音等效項,您就可以使用各種啟發法來最小化它們之間的差異。對於詩歌,你可能需要過度強調詞尾的重要性——押韻主要取決於詞尾。您可能還需要詩的頭韻——悅耳的頭韻可能需要不同的權重。

我會參加一門關於 NLP 的免費線上大學課程 - 目前有好幾門。更了解解析語言的現代技術。 :)

答案2

您可以在相同長度的字串之間進行字串比較,並允許存在一個(或兩個)不匹配的字元。

不過,透過查看您的網站,我建議透過單字的語音表示來映射單詞,然後搜尋它們,將字串視為字元數組,並從後面開始比較。

要建立您的範例:near -> \'nir\ pear -> \'per\ Dear -> \'dir\arear -> \'rir\ 或 \'rer\ here -> \'hir\

(我在網路上抄襲了韋氏字典的音標,在這裡)

恐怕映射應該作為查找表完成並且無法編譯,因為英語沒有很強的發音規則...

不管怎樣,一旦你映射了你的單詞,你就可以比較它們的最後一個音素:在這種情況下,你可能想要查找以“ir\”結尾的單詞(在這種情況下,這將排除“pear”)。

這種方法看起來效率不是很高:如果我可以使用一些磁碟空間,我會保存搜尋以供將來參考:因此,當第二次使用查找所有與「near」押韻的單字時,應用程式只需加載已儲存的搜尋 - 因為字典通常不會發展太快。

相關內容