簡體   English   中英

需要一個高效的算法來檢查字符串是否包含英語語音

[英]Need a high efficient algorithm to check if a string contains english speech

我有很多字符串。 它們都只包含字符。 字符和單詞不是彼此分開的。 一些角色形成英語單詞,其他只是bufflegab。 字符串可能不包含整個句子。

我需要找出哪些是用有效的英語演講寫的。 我的意思是,String可以通過連接寫得很好的英語單詞來構建。 我知道我可以用單詞表做點什么。 但這些話並不是彼此分開的。 因此,測試每個可能的單詞組合可能非常耗時。

我正在尋找一種高性能算法或方法,用於檢查字符串是由英語單詞還是英語語音構成。 也許有些東西給了我字符串包含英語演講的機會。

你知道一種幫助我的方法或算法嗎? 獅身人面像這樣的東西對我有幫助嗎?

這稱為分割問題。

沒有簡單的方法可以解決這個問題。 根據我對你的知識水平的猜測,我可以向你建議的是從你的字典中建立一個特里 ,並且在你第一次發現一個可能的單詞時,試着假設它是單詞。

如果以后你發現這個單詞的最后一部分是亂碼,那么你回溯到最后一次你決定一個字母序列是一個單詞,並忽略那個單詞。

如果你的琴弦足夠長或你的bufflegab足夠奇怪, 字母頻率 - 可能還有二十字頻率 ,三角頻率等 - 可能就足夠了(而不是更一般的N-gram)。 例如,某些瀏覽器使用它來猜測代碼頁。

檢查N-gram語言模型。

http://en.wikipedia.org/wiki/N-gram

獅身人面像可能不會幫助你。 嘗試Rabin-Karp算法。 它對於標准搜索來說很糟糕,但應該適用於這個特定問題。 基本上,你會想要一個英文單詞詞典,並希望用它來搜索。 過大的字典仍然會很慢,但是如果你使用一個小字典來表達普通單詞並且只有當你點擊常用單詞時切換到一個大字典,你可能仍然不會得到太多的假陰性。

為什么不將您的wordlist存儲在Trie中 然后你遍歷輸入,在Trie中尋找匹配的單詞 - 這可以非常有效地完成。 如果找到一個,請前進到單詞的末尾並繼續。

這取決於您想要的准確度,您需要的效率以及您正在處理的文本類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM