python - 标记化:如何在用于 NLP 的 python 中不标记标点符号,如 `^*
问题描述
我想标记除 `*^ 之外的字符串标点符号
我试过但结果,所有类型的标点符号都是分开的,而对于某些标点符号我不想分开
当我使用:
text = "hai*ini^ema`il saya lunar!?"
tokenizer = TweetTokenizer()
nltk_tokens = tokenizer.tokenize(text)
nltk_tokens
我得到:
['hai', '*', 'ini', '^', 'ema', '`', 'il', 'saya', 'lunar', '!', '?']
我想要的是:
['hai*ini^ema`il', 'saya', 'lunar', '!', '?']
我想标记但不标记 *^`
解决方案
尝试这个:
def phrasalize(tokens):
s = " ".join(tokens)
match = re.match("((\w*\s[\*\^\`]\s\w*)+)", s)
while match:
s = s.replace(match.group(1), match.group(1).replace(' ', ''))
match = re.match("((\w*\s[\*\^\`]\s\w*)+)", s)
return s
tokens = ['hai', '*', 'ini', '^', 'ema', '`', 'il', 'saya', 'lunar', '!', '?']
phrasalize(tokens)
[出去]:
'hai*ini^ema`il saya lunar ! ?'
推荐阅读
- mysql - mysql union get back Error 1022 - 我该如何解决这个问题?
- python - 在python中枚举具有给定叶节点数量的有序二叉树结构
- php - LARAVEL ERRORS - 流浪者提供后的 Hashicorp/嵌入错误
- php - 利用$outputs 中的 s
- java - 使用 dropwizard 时附加自定义标头以访问日志
- python - 如何在python的数据框中添加一列,其值取决于多列
- azure-devops - 试图将组织 A 项目 A 工作项移动到组织 B 项目 B
- excel - Excel VBA:满足条件时将列复制到另一个工作表
- javascript - 如何在 Javascript Laravel 上编写资产 URL
- sql - 如何在 Oracle 中使用 LOOP 引用动态变量