1

私はウルドゥー語で 10000 語以上のコーパスを持っています。今私が欲しいのは、データをきれいにすることです。テキストに「!؟ـ،」のような特殊な Uni コード データが表示されます。正規表現を使用すると、データがエンコードされた形式ではないというエラーが表示されます。私のデータをきれいにするための助けを私に提供してください。ありがとうございました

ここに私のサンプルデータがあります:

続きを読む

いいえ

続きを読む

あいにゃん

ぐっちょ

正しく

ダーシジック

アワー

パーシージー

ワルロガ

ガウ

アスマンノガ

にゃん

お気に入り

オハイオ州

ہے۔

ダシャシガシ

ウォーリー

4

1 に答える 1

3

あなたのサンプルを使用して、ہまたはを含むすべての単語を見つけましたر

正規表現文字列とデータ文字列の前に u を使用して、utf-8 データを扱っていることを python に伝える必要があることに注意してください。

import re
data = u"""
ظہیر

احمد

ماہرہ

خان

.....
"""
result = re.findall(u'[^\s\n]+[ہر][^\s\n]+',data,re.MULTILINE)
print(result)

出力は

['ظہیر', 'ماہرہ', 'تصاویر،', 'پہنچایا', '،ہوا']

別の例では、空白を除くすべての非アルファベットを削除し、1 つの空白のみが単語を区切るようにします。

result = re.sub(' +',' ',re.sub(u'[\W\s]',' ',data))
print(result)

出力は

 ظہیر احمد ماہرہ خان کی تصاویر نے دائیں اور بائیں والوں کو آسمانوں پر پہنچایا ہوا ہے دائیں والے 

単語 tokanizer を使用することもできます。

import nltk
result = nltk.tokenize.wordpunct_tokenize(data)
print(result)

出力は次のようになります

['ظہیر', 'احمد', 'ماہرہ'
 , 'خان', 'کی', '،', 'تصاویر'
 , '،', 'نے', 'دائیں', 'اور', 'بائیں', 'والوں'
 , 'کو', 'آسمانوں', 'پر', 'پہنچایا'
 , '،', 'ہوا', 'ہے', '۔', 'دائیں', '؟', 'والے']

編集... Python 2.7の場合、コードファイルの先頭でエンコーディングを指定するだけでなくre、正規表現が「ユニコード」であることを指定する必要がありますre.UNICODE

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import re

data = u"""ظہیر

احمد

ماہرہ

خان

کی،

.....

"""


result = re.sub(ur'\s+',u' ',re.sub(ur'[\W\s]',ur' ',data,re.UNICODE),re.UNICODE)
print(result)

ur''文字列が Unicode 正規表現文字列であることを指定するために を使用することにも注意してください

于 2017-10-14T10:07:28.983 に答える