Bodo言語のNLPにpython 2.7を使用しています(Devnagariスクリプトを使用)
ストップ ワードの削除の過程で、改行 ("\n") で区切られたファイルにストップ ワードのリストを作成しました。codecs モジュールを使用してこのファイルを読み取り、リストに変換しました。
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)
codecs モジュールを使用してコーパス (テキスト ファイル) を文字列と 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> जेबजेब カー
output.txt ファイルは空のファイルである必要がありますが、次のものが含まれています。
ロレックス <br><br><br><br><br>
このコードは英語のテキスト (ASCII) に適しているため、utf-8 処理に問題がある可能性があります。提案してください。