有没有办法在 keras tokenizer 中包含标点符号?
我想进行转型......
这
Tomorrow will be cold.
TO
Index-tomorrow, Index-will,...,Index-point
我怎样才能做到这一点?
答案 0 :(得分:4)
如果您对文本进行一些预处理,则可以这样做。
首先,您要确保标记符未过滤掉标点符号。您可以从文档中看到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)
- &GT;打印:{'将':2,'是':3,'冷':4,'明天':1,'。':5}
替换逻辑可以以更智能的方式完成(例如,如果你想捕获所有标点符号,则使用正则表达式),但是你得到了要点。
答案 1 :(得分:1)
一种受lmartens提议的解决方案启发的通用解决方案,它使用Regex表达式替换一组标点符号。这里的代码:
TID Customer PRODUCT VAL1 VAL2 VAL3 VAL4
1 CUST A CONTENT1 CONTENT2 CONTENT3 CONTENT4
1 CUST B CONTENT1 CONTENT2 CONTENT3 CONTENT4
1 CUST C CONTENT1 CONTENT2 CONTENT3 CONTENT4
1 CUST D CONTENT1 CONTENT2 CONTENT3 CONTENT4
1 CUST E CONTENT1 CONTENT2 CONTENT3 CONTENT4
EDIT: