2013-03-07 71 views
7

好吧,我知道這個問題被多次詢問,但我仍然無法用「可用」解決方案修復它。希望得到任何進一步的想法或如何檢測我的句子的概念是Python中的英語。可用的解決方案:檢測是否帶有python的英文文本

  • 語言探測器(紅寶石不是蟒蛇:/)
  • 谷歌翻譯API V2(不再是免費的,要交一個月的,而我在做這個項目的學術目的20塊錢。禮貌限制:?0字符/天)
  • 語言識別的Python(源代碼沒有找到,鏈接在下面automatic-language-identification
  • Enchant(它不是Python 2.7版我是新來的蟒蛇,任何指導我?打賭這將是我需要的)
  • 來自NLTK的Wordnet(我得到不知道爲什麼「wordnet.synsets」丟失,只有「wordnet.Synset」可用。解決方案中的示例代碼不適用於我以及T_T,可能再次版本問題?)
  • 將英語單詞存儲到列表中,並比較單詞是否存在(是的,這是有點糟糕的方法,而句子來自Twitter和..你知道:P)

工作液

最後經過一系列的努力,以下是工作液(替代上述列表)

  • Wikt離子API(使用Urllib2和simplejson解析它)。然後查找該鍵是否爲-1表示該詞不存在。否則它是英語。當然,在twitter中使用必須將您的單詞預處理爲@#,?!等特殊字符。關於如何找到鑰匙將在這裏引用。 (弱點:假如說短於20個字符的句子必須安裝PyEnchant,否則它將返回UNKNOWN。雖然PyEnchant不支持Python 2.7,但意味着無法安裝,並且不能安裝,而且不支持Python 2.7,意味着無法安裝,也不會工作不到20個字符的句子)

參考

+0

有趣的問題。將單詞存儲在列表中的一個改進是將它們存儲在一個集合或字典中。列表方法是O(n),其他方法是O(1)。 – Octipi 2013-03-07 00:48:20

+0

不要在問題中提出解決方案,而應將其作爲答案發布。如果您有答案,請回答您自己的問題 – 2016-01-14 15:17:57

回答

8

您可以嘗試通過Miguel Grinber's The Flask Mega Tutorial找到的guess_language庫。它看起來像它支持Python 2和3,所以它應該沒問題。

+0

謝謝;)最近我找不到文件,並忽略。順便說一句,你有任何線索如何解決這個問題?導入沒有錯誤,但是當我嘗試調用guess_language(「我的句子」)時,它返回給我以下內容:Traceback(最近調用最後一個): 文件「」,第1行,在 TypeError:'module'object is不可回調 – 1myb 2013-03-07 01:33:51

+3

您的導入應爲:from guess_language import guessLanguage和您的調用應該是猜測語言('我的句子')。您正在調用錯誤的模塊。如果您試圖理解所說的內容,類型錯誤確實很有幫助。在這種情況下,它說你正在調用一個'模塊'對象。 – 2013-03-07 01:39:31

+0

Tefekci,非常感謝;)煩人的文檔-.- – 1myb 2013-03-07 01:43:06

1

您可能能夠使用隱馬爾可夫模型來檢測語言,每種語言將有自己的特色。

+0

請允許我提供一些參考鏈接;)謝謝 – 1myb 2013-03-07 01:34:19

+0

http://en.wikipedia。org/wiki/Hidden_​​Markov_model很抱歉,但基本上,特定字節序列的概率取決於語言。在英語中,「hello」表示比語言中很少出現的序列更可能的字節序列,例如「encontrar」。單詞的差異可能很小,但如果你有一個短語,你將能夠得到更確切的結果。 – Arafangion 2013-03-07 14:57:23

+0

坦率地說,我只是跟多空坎的回答一起去。 – Arafangion 2013-03-07 15:03:16