Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据库中存储标记化文本?_Python_Caching_Postgresql_Nlp_Tokenize - Fatal编程技术网

Python 在数据库中存储标记化文本?

Python 在数据库中存储标记化文本?,python,caching,postgresql,nlp,tokenize,Python,Caching,Postgresql,Nlp,Tokenize,我有一个简单的问题。我正在做一些轻微的爬行,所以每隔几天就会有新内容出现。我已经编写了一个标记器,并希望将其用于一些文本挖掘目的。具体来说,我正在使用Mallet的主题建模工具,其中一个管道是在进一步处理之前将文本标记为标记。由于我的数据库中有大量的文本,标记文本需要花费大量的时间(我在这里使用regex) 因此,将标记化文本存储在db中是否是一种规范,以便标记化数据可以随时可用,并且如果出于主题建模、词性标记等其他文本挖掘目的需要,可以跳过标记化?这种方法的缺点是什么 缓存中间表示法 在文档处

我有一个简单的问题。我正在做一些轻微的爬行,所以每隔几天就会有新内容出现。我已经编写了一个标记器,并希望将其用于一些文本挖掘目的。具体来说,我正在使用Mallet的主题建模工具,其中一个管道是在进一步处理之前将文本标记为标记。由于我的数据库中有大量的文本,标记文本需要花费大量的时间(我在这里使用regex)


因此,将标记化文本存储在db中是否是一种规范,以便标记化数据可以随时可用,并且如果出于主题建模、词性标记等其他文本挖掘目的需要,可以跳过标记化?这种方法的缺点是什么

缓存中间表示法

在文档处理管道中缓存由较慢的组件创建的中间表示是很正常的。例如,如果您需要每个文档中的所有句子,那么除了对文档进行一次解析然后重用结果之外,执行任何操作都是非常疯狂的

慢速标记化

然而,令我惊讶的是,标记化对您来说真的很慢,因为标记化下游的东西通常是真正的瓶颈

您使用什么包来进行标记化?如果您使用的是Python,并且编写了自己的标记化代码,那么您可能希望尝试中包含的一个标记化程序(例如)


另一个好的标记器,尽管不是用Python编写的,是端到端NLP管道中包含的。虽然我并不总是喜欢与数据库通信的开销,但我发现有很多处理任务可以让数据库为我做(比如搜索依赖项解析树以查找复杂的语法模式)

您没有清楚地描述您的方法,无法得到有意义的答案。你能举例说明标记器过程的输入和输出,以及为什么你认为这是一个瓶颈。@Terrel,我已经编辑了我的问题。基于你的其他问题,我对你正在努力实现的目标有了更好的了解。您所询问的正则表达式的速度非常慢,因此我认为现有的标记化器(如dmcer所建议的)会更快。Feedparser和beautifulsoup是最好的python解决方案,用于从博客中获取文本并将其输入到标记器中。是的,我会缓存这个阶段的输出。@Terrel,谢谢你的评论。我将查看现有的标记化程序,并仔细检查现有的正则表达式。是的,我现在将使用feedparser和beautifulsoup。谢谢你的回答。也许正如@Terrel所建议的,我在自己的标记器中使用了一些非常慢的正则表达式(一些用于正确标记smiley)。我会检查的。我曾经尝试过ntlk treebankwordtokenizer,但我想也许我可以自己动手构建一个(基于宾夕法尼亚州Treebank惯例)。