【发布时间】:2019-11-03 15:20:59
【问题描述】:
我有一个 .csv 文件,我想将非英文文本和英文文本分隔在两个不同的文件中。下面是代码,我试过了:
import string
def isEnglish(s):
return s.translate(None, string.punctuation).isalnum()
file=open('File1.csv','r',encoding='UTF-8')
outfile1=open('Eng.csv','w', encoding='utf-8')
outfile2=open('Noneng.csv','w', encoding='utf-8')
for line in file.readlines():
r = isEnglish(line)
if r:
outfile1.write(line+"\n")
else:
outfile2.write(line+"\n")
代码没有产生预期的结果。两个文件中都有重复的英文文本。我附上了一个输出文件的快照。
【问题讨论】:
-
你能解释一下你所说的非英文文本是什么意思吗?你只想要ASCII? “天真”或“简历”呢?表情符号?
-
非英语文本是指英语以外的语言。保留拉丁字符和表情符号没有问题。事实上,我想保留表情符号和拉丁字符。
-
您打算如何区分英语和非英语?这里有哪些语言选项?
-
我尝试使用 TextBlob 库的 detect_language() ,但它在几行之后引发了错误。然后我尝试了上面的代码。文件中包含日语、葡萄牙语、法语、西班牙语、乌尔都语、泰米尔语和泰卢固语等所有语言
-
Str.translate 不能自动将字符串翻译成不同的人类语言。请阅读该功能的文档,它对您没有任何帮助
标签: python python-3.x nlp