在keras tokenizer中包含标点符号

问题描述 投票:1回答:1

有没有办法在keras tokenizer中包含标点符号? 我想要转型......

Tomorrow will be cold.

Index-tomorrow, Index-will,...,Index-point

我怎样才能做到这一点?

keras tokenize
1个回答
3
投票

如果对文本进行一些预处理,则可以执行此操作。

首先,您要确保标记符未过滤掉标点符号。您可以从文档中看到Tokenizer在初始化时采用过滤器参数。您可以使用要过滤的字符集替换默认值,并排除索引中要包含的字符集。

第二部分是确保标点符号被识别为自己的标记。如果您对例句进行标记,结果将会“冷”。作为代币而不是“冷”和“。”。你需要的是单词和标点符号之间的分隔符。一种天真的方法是用空格+标点符号替换文本中的标点符号。

以下代码执行您的要求:

from keras.preprocessing.text import Tokenizer

t = Tokenizer(filters='!"#$%&()*+,-/:;<=>?@[\\]^_`{|}~\t\n') # all without .
text = "Tomorrow will be cold."
text = text.replace(".", " .")
t.fit_on_texts([text])
print(t.word_index)

- > print:{'will':2,'be':3,'cold':4,'明'':1,'。':5}

替换逻辑可以以更智能的方式完成(例如,如果你想捕获所有标点符号,则使用正则表达式),但是你得到了要点。

© www.soinside.com 2019 - 2024. All rights reserved.