keras - keras-tokenizer 是否执行词形还原和词干提取的任务?

标签 keras nlp tokenize stemming lemmatization

keras tokenizer 是否提供词干提取、词形还原等功能?如果是,那么它是如何完成的?需要一个直观的理解。还有,text_to_sequence 是什么意思?在那做什么?

最佳答案

分词器分别做什么和分词是什么可能会有一些混淆。标记化将字符串拆分为更小的实体,例如单词或单个字符。因此,这些也称为 token 。 Wikipedia提供了一个很好的例子:
The quick brown fox jumps over the lazy dog变成:

<sentence>
  <word>The</word>
  <word>quick</word>
  ...
  <word>dog</word>
</sentence>

词形还原(将单词的屈折形式组合在一起 -> link )或词干提取(将屈折(或有时派生)单词减少为其词干的过程 -> link )是您在预处理期间执行的操作。标记化可以是词形还原和词干提取之前或之后(或两者)的预处理过程的一部分。

无论如何,Keras 不是用于完全文本预处理的框架。因此,您将已经清理过、词形还原等的数据输入到 Keras 中。 关于您的第一个问题:不,Keras 不提供像词形还原或词干提取这样的功能。

Keras 在文本预处理下的理解如 here in the docs是准备数据以便提供给 Keras 模型(如序列模型)的功能。例如,这就是为什么 Keras-Tokenizer做这个:

This class allows to vectorize a text corpus, by turning each text into either a sequence of integers (each integer being the index of a token in a dictionary) or into a vector where the coefficient for each token could be binary, based on word count, based on tf-idf...



例如,通过向量化您的输入字符串并将它们转换为数字数据,您可以将它们作为输入提供给一个神经网络,在 Keras 的情况下。

什么 text_to_sequence可以从中提取手段:[...]整数序列(每个整数是字典中标记的索引)[...]。
这意味着您之前的字符串可以是数字整数序列(例如数组)而不是实际单词。

关于这一点,您还应该看看 Keras Sequential 模型是什么(例如 here ),因为它们将序列作为输入。

此外,text_to_word_sequence() ( docs ) 也提供了这样的标记化,但不会将您的数据向量化为数字向量并返回您的标记化字符串数组。

Converts a text to a sequence of words (or tokens).

关于keras - keras-tokenizer 是否执行词形还原和词干提取的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56556837/

相关文章:

python - 尝试理解 Keras 中的矩阵形状时遇到问题?

python - Keras 一个操作在 train_on_batch 时对梯度有 None

java - 如何使用 4 个不同类型的系统描述符 xml 文件查看 CAS

javascript - 在Meteor项目中使用天然的nodejs库

elasticsearch - Elasticsearch Facet token 化

python - reshape 具有多个未知维度的张量

python - 从保存的模型进行预测时,测试数据预测会产生随机结果

python - python 中的快速/优化 N-gram 实现

python - nltk.TweetTokenizer 中的 Tokenize() 通过拆分返回整数

elasticsearch - Elasticsearch自定义分析器,带有ngram并且在连字符上没有单词定界符