我有一个简单的问题。我正在做一些轻度爬行,因此每隔几天就会有新内容到达。我写了一个分词器并想将它用于某些文本挖掘目的。具体来说,我正在使用 Mallet 的主题建模工具,其中一个方法是在可以完成进一步处理之前将文本标记为标记。由于我的数据库中有大量文本,因此需要花费大量时间来标记文本(我在这里使用正则表达式)。
因此,将标记化文本存储在数据库中是否是一种规范,以便可以随时使用标记化数据,并且如果我需要它们用于其他文本挖掘目的(例如主题建模、POS 标记),则可以跳过标记化?这种方法的缺点是什么?
最佳答案
缓存中间表示
在您的文档处理管道中缓存由较慢的组件创建的中间表示是很正常的。例如,如果您需要 dependency parse trees对于每个文档中的所有句子,解析文档一次然后重用结果之外的任何操作都是非常疯狂的。
标记化缓慢
但是,我很惊讶标记化对您来说真的很慢,因为标记化下游的东西通常是真正的瓶颈。
您使用什么包进行标记化?如果您使用的是 Python 并且编写了自己的标记化代码,您可能想尝试 NLTK 中包含的标记器之一。 (例如,TreebankWordTokenizer)。
另一个很好的分词器是 PTBTokenizer,尽管它不是用 Python 编写的。包含在 Stanford Parser 中 和 Stanford CoreNLP 端到端 NLP 流水线。
关于python - 在数据库中存储标记化文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4122940/