我如何在没有 nltk 的情况下清理 urdu 数据语料库 Python
How can i clean urdu data corpus Python without nltk
我有超过 10000 个乌尔都语单词的语料库。现在我想要的是清理我的数据。每当我使用正则表达式时,我的文本中都会出现一个特殊的 uni 编码数据,如“!؟ـ،”,它会给我错误,你的数据不是编码形式。
请为我提供一些帮助来清理我的数据。
谢谢
这是我的示例数据:
ظہیر
احمد
ماہرہ
خان
کی،
تصاویر،
نے
دائیں
اور
بائیں
والوں
کو
آسمانوں
پر
پہنچایا
،ہوا
ہے۔
دائیں؟
والے
我用你的样本找到了所有带有 ہ
或 ر
的单词
请注意,我必须通过在正则表达式字符串和数据字符串前面使用 u 来告诉 python 我正在处理 utf-8 数据
import re
data = u"""
ظہیر
احمد
ماہرہ
خان
.....
"""
result = re.findall(u'[^\s\n]+[ہر][^\s\n]+',data,re.MULTILINE)
print(result)
输出是
['ظہیر', 'ماہرہ', 'تصاویر،', 'پہنچایا', '،ہوا']
另一个示例,删除除空格之外的所有 none 字母表,并确保只有一个空格分隔单词
result = re.sub(' +',' ',re.sub(u'[\W\s]',' ',data))
print(result)
输出是
ظہیر احمد ماہرہ خان کی تصاویر نے دائیں اور بائیں والوں کو آسمانوں پر پہنچایا ہوا ہے دائیں والے
你也可以使用分词器,
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 正则表达式字符串
我有超过 10000 个乌尔都语单词的语料库。现在我想要的是清理我的数据。每当我使用正则表达式时,我的文本中都会出现一个特殊的 uni 编码数据,如“!؟ـ،”,它会给我错误,你的数据不是编码形式。 请为我提供一些帮助来清理我的数据。 谢谢
这是我的示例数据:
ظہیر
احمد
ماہرہ
خان
کی،
تصاویر،
نے
دائیں
اور
بائیں
والوں
کو
آسمانوں
پر
پہنچایا
،ہوا
ہے۔
دائیں؟
والے
我用你的样本找到了所有带有 ہ
或 ر
请注意,我必须通过在正则表达式字符串和数据字符串前面使用 u 来告诉 python 我正在处理 utf-8 数据
import re
data = u"""
ظہیر
احمد
ماہرہ
خان
.....
"""
result = re.findall(u'[^\s\n]+[ہر][^\s\n]+',data,re.MULTILINE)
print(result)
输出是
['ظہیر', 'ماہرہ', 'تصاویر،', 'پہنچایا', '،ہوا']
另一个示例,删除除空格之外的所有 none 字母表,并确保只有一个空格分隔单词
result = re.sub(' +',' ',re.sub(u'[\W\s]',' ',data))
print(result)
输出是
ظہیر احمد ماہرہ خان کی تصاویر نے دائیں اور بائیں والوں کو آسمانوں پر پہنچایا ہوا ہے دائیں والے
你也可以使用分词器,
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 正则表达式字符串