我正在构建一个大约有10,000条记录的MySQL数据库。每个记录将包含一个文本文档(大多数情况下为几页文本)。我想在整个数据库中进行各种n-gram计数。我有已经用Python编写的算法,这些算法是我想要对付包含大量文本文件的目录,但要做到这一点,我需要从数据库中提取10,000个文本文件 - 这会产生性能问题。MySQL中的n元计数
我是一个使用MySQL的新手,所以我不确定它是否有任何内置功能可以执行n-gram分析,或者是否有很好的插件。请注意,在我的分析中,我需要至少达到4克(最好是5克),所以我看到的简单的2克插件在这里不起作用。在进行n-gram计数之前,我还需要能够从文本文档中删除停用词。
社区的任何想法?
感谢,
罗恩
当没有人正在等待答案时,你不是在离线处理n-gram吗?或者是否需要在每次添加一批文件时跨越许多文本文件快速生成新的n-gram数据库? – hobs
我知道类似于在其他论坛中询问的问题。在放弃和寻找一些应用程序级别的解决方案(例如PHP)来执行字符串分析之前,问题人员在SQL中摆弄了几天。只是说' – Strawberry
你不能在RDBMS中进行合理的5克处理。如果你缺乏递归查询的能力,Storarge是可行的,但是非常痛苦。 (在这方面,mysql是个不错的选择)我自己的玩具项目http://sourceforge.net/projects/wakkerbot/拥有所有原始文本行(大约2M当前)存在于(postgres)数据库中,但是它全部都是在独立的C程序中进行5克马尔可夫处理,将其树(35M节点)存储在平面文件中。恕我直言,Python对于这种事情来说太慢了。 – wildplasser