python中接受所有泰文字符和英文字母的正则表达式

2023-11-25

我需要对泰语文本文档进行矢量化(例如 Bag of Words、doc2vec)。

首先,我想检查每个文档,省略除泰语字符和英语单词之外的所有内容(例如,没有标点符号,没有数字,除了撇号之外没有其他特殊字符)。

对于英文文档,我使用这个正则表达式:[^a-zA-Z' ]|^'|'$|''

对于泰语文档,我找不到正确的正则表达式来使用。我知道泰语的 Unicode 块是 u0E00–u0E7F。 我试过[^ก-๛a-zA-Z' ]|^'|'$|''以及许多其他组合,但他们都没有成功。

例如: 我想

“ทรูวิชั่นส์ประกาศถ่ายทอดสดศึกฟุตบอลพรีเมี ยร์ ลีก อังกฤษ ครบทุกนัดเป็นเวลา 3 ปี ตั้งแต่ฤดู 2016/2017 - 2018/2019 年 5 月 5 日, กัลโช เซเรีย เอ อิตาลี และลีกเอิ งฝรั่งเศสภายใต้แพ็กเกจสุดคุ้มทั้งผ่ามืนอถ ือ และโทรทัศน์一些,英语单词在这里!abc123”

to be:

“ทรูวิชั่นส์ประกาศถ่ายทอดสดศึกฟุตบอลพรีเมี ยร์ลีกอังกฤษครบทุกนัดเป็นเวลาปีตั้งแต่ฤดูก พร้อมด้วยอีกลีกดังอาทิลาลีกาสเป,กัลโชเซ เรียเออิตาลีและลีกเอิงฝรั่งเศสภายใต้แพ็กเ กจสุดคุ้ม ทั้งผ่านมือถือและโทรทัศน์这里有一些英语单词abc”


我将使用一些列表来完成我需要的操作。

首先,让我们创建模式:

pattern = re.compile(r"[^\u0E00-\u0E7Fa-zA-Z' ]|^'|'$|''")

我将使用一个名为test_string,包含您的示例:

test_string="ทรูวิชั่นส์ ประกาศถ่ายทอดสดศึกฟุตบอล พรีเมียร์ ลีก อังกฤษ ครบทุกนัดเป็นเวลา 3 ปี ตั้งแต่ฤดูกาล 2016/2017 - 2018/2019 พร้อมด้วยอีก 5 ลีกดัง อาทิ ลา ลีกา สเปน, กัลโช เซเรีย เอ อิตาลี และลีกเอิง ฝรั่งเศส ภายใต้แพ็กเกจสุดคุ้ม ทั้งผ่านมือถือ และโทรทัศน์ some, English words here! abc123"

首先,让我们在列表中获取要删除的字符:

char_to_remove = re.findall(pattern, test_string)

然后,让我们创建一个由原始字符串中的字符组成的列表,不包含这些字符:

list_with_char_removed = [char for char in test_string if not char in char_to_remove]

我们将此列表转换为字符串,就完成了。

result_string = ''.join(list_with_char_removed)

结果是:

'ทรูวิชั่นส์ ประกาศถ่ายทอดสดศึกฟุตบอล พรีเมียร์ ลีก อังกฤษ ครบทุกนัดเป็นเวลา ปี ตั้งแต่ฤดูกาล พร้อมด้วยอีก ลีกดัง อาทิ ลา ลีกา สเปน กัลโช เซเรีย เอ อิตาลี และลีกเอิง ฝรั่งเศส ภายใต้แพ็กเกจสุดคุ้ม ทั้งผ่านมือถือ และโทรทัศน์ some English words here abc'

如果您有更干净的方法来执行任何步骤/有任何问题,请不要犹豫!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中接受所有泰文字符和英文字母的正则表达式 的相关文章

随机推荐