Sentence Iterator 句子迭代器
Word2vec 和 Bag of Words 中都使用了句子迭代器。
它以向量的形式将文本位输入神经网络,还涵盖了文本处理中的文档概念。
在自然语言处理中,文档或句子通常用于封装算法应该学习的上下文。
一些例子包括分析推文和全面的新闻文章。句子迭代器的目的是将文本划分为可处理的位。
请注意,句子迭代器与输入无关。因此,一些文本(文档)可以来自文件系统、Twitter API 或 Hadoop。
根据输入的处理方式,句子迭代器的输出将被传递给分词器以处理单个词,这些词通常是单词,但也可以是 ngram、skipgram 或其他单元。
分词器由分词器工厂基于每个句子创建。标记器工厂是传递给文本处理矢量器的东西。
一些典型的例子如下:
SentenceIterator iter = new LineSentenceIterator(new File("your file"));
这假定文件中的每一行都是一个句子。
您还可以将字符串列表作为句子执行,如下所示:
Collection<String> sentences = ...;
SentenceIterator iter = new CollectionSentenceIterator(sentences);
这将假设每个字符串都是一个句子(文档)。
请记住,这可能是推文或文章列表——两者都适用。
您可以按如下方式遍历文件:
SentenceIterator iter = new FileSentenceIterator(new File("your dir or file"));
这将逐行解析文件并返回每个句子。
对于任何复杂的事情,我们推荐任何可以实现比空格分隔令牌更深入支持的管道。
参考资料
https://deeplearning4j.konduit.ai/deeplearning4j/tutorials/language-processing/sentence-iterator