我需要对泰文中的文本文档进行矢量化处理(例如Word of Bag,doc2vec)。
首先,我想遍历每个文档,省略除泰语字符和英语单词之外的所有内容(例如,不带标点,没有数字,除撇号外没有其他特殊字符)。
对于英文文档,我使用以下正则表达式:[^a-zA-Z' ]|^'|'$|''
对于泰国文档,我找不到要使用的正确正则表达式。我知道泰语的Unicode块是u0E00–u0E7F。我尝试了[^ก-๛a-zA-Z' ]|^'|'$|''许多其他组合,但没有成功。
例如:我要
ทรูวิชั่นส์ประกาศถ่ายทอดสดศึกฟุตบอดสดศึกฟุตบอล3อูวิชั่ครบทุกนัดเป็นเวลา3ลาล2016/2017-2018/2019พร้อมด้วยอีก5ลีกดังอาทิลาลีกาสเปน,กัลโชรียเออิตาลี ์ั่งเศสรั่งเศสภายใต้แพ็กเกจสุดคุ้มทั้งผ่านมือถือและโทรทัศน์一些,这里是英语单词!abc123“
成为:
“ทรูวิชั่นส์ประกาศถ่ายทอดสดศึกฟุตบอลพรีเมียร์ลีกอล Englishานมือถือและโทรทัศน์这里有一些英语单词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=[charforcharintest_stringifnotcharinchar_to_remove]
我们将此列表转换为字符串,然后完成。
result_string=''.join(list_with_char_removed)
结果是:
'ทรูวิชั่นส์ ประกาศถ่ายทอดสดศึกฟุตบอล พรีเมียร์ ลีก อังกฤษ ครบทุกนัดเป็นเวลา ปี ตั้งแต่ฤดูกาล พร้อมด้วยอีก ลีกดัง อาทิ ลา ลีกา สเปน กัลโช เซเรีย เอ อิตาลี และลีกเอิง ฝรั่งเศส ภายใต้แพ็กเกจสุดคุ้ม ทั้งผ่านมือถือ และโทรทัศน์ some English words here abc'
如果您有任何更清洁的方法来执行任何步骤/任何问题,请不要犹豫!