在 nlp 文本预处理中,经常需要将文本内容先按照每个字,随机初始化向量,这就需要我们对文本进行按字提取,主要是中文按每个字提取,英文按每个单词提取、数字按照空格分开提取、特殊符号每个提取等。针对中英文混合的文本提取,笔者基于正则表达式封装了如下函数。
基于正则的提取函数
def fetch_word(ipt):
lst = []
# 输入小写化
s = ipt.lower()
while len(s) > 0:
# 提取头部的英文匹配
match = re.match(r'[a-z]+', s)
if match:
word = match.group(0)
else:
# 若非英文单词,直接获取第一个字符
word = s[0:1]
lst.append(word)
# 从文本中去掉提取的 word,并去除文本收尾的空格字符
s = s.replace(word, '', 1).strip(' ')
return lst