我在 Bodo 语言中使用 python 2.7 进行 NLP(使用Devnagari脚本)
在去除停用词的过程中,我在一个文件中制作了一个停用词列表,由换行符(“\n”)分隔。我使用编解码器模块读取此文件并转换为列表。
raw_txt = codecs.open('stopwords.txt', 'r', 'utf-8')
stopWords = []
while(1):
line = raw_txt.readline()
if not line:
break
line = u''.join(line.strip())
stopWords.append(line)
现在我编译了一个正则表达式来查找匹配的单词:
def addWordBoundary(word):
return u''.join(r"\b" + word + r"\b")
reg = regex.compile(r"(%s)" % "|".join(map(addWordBoundary, stopWords)), regex.UNICODE)
我使用编解码器模块将语料库(文本文件)读取到字符串和 regex.sub(),然后使用编解码器本身将其写入文件。但它漏掉了一些词。我不知道为什么。
fl = codecs.open('corpus.txt', 'r', 'utf-8')
rawFile = fl.read()
cleanText = reg.sub('', rawFile, regex.U)
wr = codecs.open('output.txt', 'w', 'utf-8')
wr.write(cleanText)
wr.close()
出于测试目的,将其用作 stopwords.txt 和 corpus.txt
<br>
<br> <br> <br> <br> <br>
<br>
<br>
<br>
<br>
output.txt 文件必须是一个空文件,但它包含:
रावनिफ्रायबो<br> इफोरनिफ्राय
此代码适用于英文文本(ASCII),所以可能是我在处理 utf-8 时做错了什么。请建议。