1

我正在尝试在结构化数据和NLTK. NLP图书馆通常使用词袋,因此我需要将我的结构化数据变成词袋。

我需要将单词的偏移量与其元数据相关联。因此,我最好的选择是拥有某种容器,将范围作为键(允许嵌套范围)并可以检索所有元数据(如果单词偏移量则为多个是嵌套范围的一部分)。

我可以拾取什么代码可以有效地做到这一点(即数据的稀疏表示)?高效,因为我的全球语料库至少有几百兆字节。

笔记 :

  • 我正在序列化结构化的论坛帖子。其中将包括带有引号部分的帖子。我想知道一个词属于哪个主题,以及它是引用还是用户文本。随着我的工作进展,可能会有额外的元数据。请注意,属于引用的单词是我所说的嵌套元数据,因此该单词是引用的一部分,属于用户发表的帖子。

  • 我知道可以在NLTK我没有研究过的情况下标记单词,如果可以这样做,请发表评论。但我仍在寻找原始方法。

  • 可能有一些东西numpy可以解决我的问题,现在看看

编辑

输入数据过于复杂,无法删除和发布。我找到了我正在寻找的东西http://packages.python.org/PyICL/。我需要谈论间隔而不是范围:DI 已经广泛使用了 boost,但是使依赖关系让我有点不安(遗憾的是,我在 PyICL 中遇到编译器错误 :( )。

现在的问题是:任何人都知道可以用于以稀疏方式索引嵌套间隔的间隔容器库或数据结构。或者换一种说法,提供与 boost.icl 相似的语义

4

1 回答 1

0

如果您不想使用PyICLboost.icl不依赖专门的库,您可以使用 sqlite3 来完成这项工作?如果您使用 in0memory 版本,它仍然会比boost.icl(根据编码其他数据结构与 sqlite3 的经验)慢几个数量级,但应该比std::vector在 python 容器之上使用 c++ 样式方法更有效。

您可以使用两个整数并date_type_low < offset < date_type_high在 where 子句中使用谓词。并且根据您的表结构,这将返回嵌套/重叠范围。

于 2012-09-20T15:51:16.677 回答