如何从python的孟加拉语文本中删除外来词

问题描述

我有一个文本数据文件,其中包含原始孟加拉语文本数据以及很多外来词 我想从孟加拉语原始文本中删除所有外来词。

输入:

দেশের রাজনীতি দিনকে দিন পচে যাচ্ছে। पैरेनकाइमा कोशिकाएं . what a shame. সুস্থ থাকা দায়।

输出

দেশের রাজনীতি দিনকে দিন পচে যাচ্ছে। সুস্থ থাকা দায়।

任何建议或想法都会对我有很大帮助。

提前谢谢。

致谢

解决方法

使用ord过滤掉“西方字符和标点符号”(抱歉,缺少更好的单词),并使用re去除多个空格。

import re

a = "দেশের রাজনীতি দিনকে দিন পচে যাচ্ছে। पैरेनकाइमा कोशिकाएं . what a shame. সুস্থ থাকা দায়।"

a = "".join(i for i in a if ord(i) > ord('z') or ord(i)== 32)
re.sub(' +',' ',a)

返回:

'দেশের রাজনীতি দিনকে দিন পচে যাচ্ছে। पैरेनकाइमा कोशिकाएं সুস্থ থাকা দায়।'
,

以下是评论中提到的 Christian Sloper 。显然,正确的ord范围是2432至2559,因此似乎可以正常工作:

import re

a = "দেশের রাজনীতি দিনকে দিন পচে যাচ্ছে। पैरेनकाइमा कोशिकाएं . what a shame. সুস্থ থাকা দায়।"

a = "".join(i for i in a if i in [".","।"] or 2432 <= ord(i) <= 2559 or ord(i)== 32)
re.sub(' +',a)
,

resplit()函数一起使用可删除多个while空间。

import re

a = "দেশের রাজনীতি দিনকে দিন পচে যাচ্ছে। पैरेनकाइमा कोशिकाएं . what a shame. সুস্থ থাকা দায়।"

a = "".join(i for i in a if i in ["।"] or 2432 <= ord(i) <= 2559 or ord(i)== 32)
a=" ".join(a.split())
print(a)

Outupt:

দেশের রাজনীতি দিনকে দিন পচে যাচ্ছে। সুস্থ থাকা দায়।