如何清理乌尔都语数据语料库Python没有nltk
我在乌尔都语有一个10000字以上的语料库。现在我想要的是清理我的数据。当我使用正则表达式时,在我的文本中会出现一个特殊的uni编码数据,例如“!?”,它使我错误地发现数据不是编码形式。 请提供一些帮助来清理我的数据。 谢谢如何清理乌尔都语数据语料库Python没有nltk
这里是我的样本数据:
ظہیر
احمد
ماہرہ
خان
کی،
تصاویر،
نے
دائیں
اور
بائیں
والوں
کو
آسمانوں
پر
پہنچایا
،ہوا
ہے۔
دائیں؟
والے
我用您的样品找到所有单词,ہ
或ر
请注意,我不得不告诉我处理UTF-蟒蛇通过在正则表达式字符串前面以及数据串使用×8个数据
import re
data = u"""
ظہیر
احمد
ماہرہ
خان
.....
"""
result = re.findall(u'[^\s\n]+[ہر][^\s\n]+',data,re.MULTILINE)
print(result)
输出为
['ظہیر', 'ماہرہ', 'تصاویر،', 'پہنچایا', '،ہوا']
另一个例子中,删除除空白所有无字母,并确保只有一个空格隔开的话
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
的正则表达式是“unicode”时使用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字符串的正则表达式
我用这个代码 '的编解码器进口 '进口重新 的file1 = codecs.open( “foo1.txt”, “R”,编码= “UTF-8”) 用于file1的行: 结果=应用re.sub(' +', '',re.sub(u'[\ W \ s \ d]','',line)) print(result)' 但它仍然没有工作 – smartF
您使用哪种版本的python?你得到的错误。 – sgDysregulation
其python27。 我没有得到任何错误结果是什么。意思是空的 – smartF
我建议你提供处理 – sgDysregulation
数据的样本我已经加入我的样本数据 – smartF