【问题标题】:tokenizing: how to not tokenize punctuation like `^* in python for NLP标记化:如何在用于 NLP 的 python 中不标记标点符号,如 `^*
【发布时间】:2021-06-16 03:39:37
【问题描述】:

我想标记除 `*^

之外的字符串标点符号

我试过但结果,所有类型的标点都被分开了,而对于某些标点我不想分开

当我使用时:

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', '!', '?']

我想分词但不想分词 *^`

【问题讨论】:

  • 这是什么语言?
  • NLP案例中用于清理数据的python
  • 抱歉,不清楚:hai*ini^ema`il saya lunar 是什么语言!?
  • 啊,语言是印度尼西亚语先生

标签: python jupyter-notebook nlp nltk tokenize


【解决方案1】:

试试这个:

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 ! ?'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多