我有一个包含
等行的文件 ted 1-1 1.0 politicians do not have permission to do what needs to be
done.
राजनीतिज्ञों के पास जो कार्य करना चाहिए, वह करने कि अनुमति नहीं है.
我必须编写一个逐行读取文件的程序,并将输出提供给仅包含印地语部分的文件。这里第一个单词表示最后两个段的来源。另外,最后两个句子是彼此的翻译。 基本上,我试图用这个文件创建一个平行的语料库。
答案 0 :(得分:3)
您可以通过检查Unicode字符来执行此操作。
import codecs,string
def detect_language(character):
maxchar = max(character)
if u'\u0900' <= maxchar <= u'\u097f':
return 'hindi'
with codecs.open('letter.txt', encoding='utf-8') as f:
input = f.read()
for i in input:
isEng = detect_language(i)
if isEng == "hindi":
#Hindi Character
#add this to another file
print(i,end="\t")
print(isEng)
希望这有帮助
答案 1 :(得分:1)
使用正则表达式过滤掉其中包含字母/数字的行。
import re
hindi = []
for line in open('file.txt').readlines():
if re.search(r'[a-zA-Z0-9]', line) or (not line.strip()):
continue
hindi.append(line)
with open('hindilines.txt', 'w') as f:
f.write('\n'.join(hindi))