如何清理乌尔都语数据语料库Python没有nltk

问题描述:

我在乌尔都语有一个10000字以上的语料库。现在我想要的是清理我的数据。当我使用正则表达式时,在我的文本中会出现一个特殊的uni编码数据,例如“!?”,它使我错误地发现数据不是编码形式。 请提供一些帮助来清理我的数据。 谢谢如何清理乌尔都语数据语料库Python没有nltk

这里是我的样本数据:

ظہیر

احمد

ماہرہ

خان

کی،

تصاویر،

نے

دائیں

اور

بائیں

والوں

کو

آسمانوں

پر

پہنچایا

،ہوا

ہے۔

دائیں؟

والے

+0

我建议你提供处理 – sgDysregulation

+0

数据的样本我已经加入我的样本数据 – smartF

我用您的样品找到所有单词,ہر

请注意,我不得不告诉我处理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字符串的正则表达式

+0

我用这个代码 '的编解码器进口 '进口重新 的file1 = codecs.open( “foo1.txt”, “R”,编码= “UTF-8”) 用于file1的行: 结果=应用re.sub(' +', '',re.sub(u'[\ W \ s \ d]','',line)) print(result)' 但它仍然没有工作 – smartF

+0

您使用哪种版本的python?你得到的错误。 – sgDysregulation

+0

其python27。 我没有得到任何错误结果是什么。意思是空的 – smartF