使用Python检测文件中的语言更改

时间:2015-11-29 20:57:16

标签: python nlp language-detection

我需要检测文件中的语言更改,并相应地标记每个单词。我想出了一种hacky方式,适用于2种语言(英语和希腊语)。

脚本是这样的:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys

#open file
filename = sys.argv[1]
f = open(filename,'r')
content = f.read()
f.close()


#initialize new content
newSentence=''
#for every line, if the first letter of the token isn't ascii, it's nonsense, tag it.
for line in content.split('\n'):
    newSentence+='\n'
    for token in line.split():
        try:
            result = token[0].decode('ascii','ignore')
            newSentence += ' /en'+token
        except:
            newSentence += ' /gr'+token


print newSentence

f=open(filename+'_new.txt','w')
f.write(newSentence)
f.close()

主要的想法是,如果每个单词的第一个字母不是ascii可解码的,那么它必须不是英语,所以它是唯一的其他选项。

现在我意识到这是非常hacky,我想知道我将如何以更加pythonic的方式做到这一点?即使是在文档中适用于多种语言的方式。

PS。我知道如何在一般文档中检测语言,但我想知道是否有更快的方法来检测只是更改而不调用nltk等工具。

1 个答案:

答案 0 :(得分:0)

由于很长时间没有发布其他答案,我接受略微编辑的初始脚本作为解决我问题的最佳方法。

在研究另一种更好的方法时,首先忽略错误normalizing