【问题标题】:quanteda how much scale can textstat_simil handlequanteda textstat_simil 可以处理多少规模
【发布时间】:2018-11-13 12:00:20
【问题描述】:

过去几个月我一直在使用 quanteda,并且非常喜欢使用该软件包。我的一个问题是在创建相似矩阵的时间变得太长之前,textstat_simil 函数可以处理多少行 dfm。

我有一个包含 1500 万个文档的搜索语料库。每个文档都是一个简短的句子,包含 5 到 10 个单词(文档有时也包含一些 3-4 位数字)。我已经使用字符二元组标记了这个搜索语料库并从中创建了一个 dfm。

我还有另一个语料库,我称之为匹配语料库。它有几百个长度相似的文档,具有相同的标记化,并且还为它创建了一个 dfm。目的是为每个匹配语料库文档从搜索语料库中找到最接近的匹配文档。

通过将匹配 dfm 与搜索 dfm 绑定来生成组合 dfm。组合 dfm 的唯一标记数约为 1580。然后我使用“余弦”方法在此组合 dfm 上运行 textstat_simil,“文档”作为边距,并且选择只是现在要测试的匹配语料库文档之一。但是,当我运行 textstat_simil 时,它需要超过 5 分钟才能运行。

对于这种使用 quanteda 的方法来说,这种体积是否太大?

干杯, 软

【问题讨论】:

  • 我认为您可能需要展示一些示例代码,以便即使是该主题的专家也能清楚地看到这一点。

标签: trigonometry quanteda


【解决方案1】:

quanteda v1.3.13 中,我们对计算余弦相似度的函数进行了重新编程,以提高内存和存储的效率。但是,听起来您仍在尝试获取一个文档间距离矩阵(不包括对角线),该矩阵的大小为 (15000000^2)/2 - 150000000 = 1.124998e+14 个单元格。如果你能够让它运行,我对你的机器印象非常深刻!

但是,对于您的 1,850 个目标文档集,您可以使用 selection 参数来缩小范围。

另外,在 v1.3.13 中寻找实验性的 textstat_proxy() 函数,我们为此类问题创建了该函数。您可以指定一个最小距离,低于该距离将不会被记录,它使用稀疏矩阵对象返回一个距离矩阵。这仍然是实验性的,因为稀疏值不是零,而是将被稀疏矩阵上的任何操作视为零。 (这违反了一些距离属性 - 请参阅讨论 here。)

【讨论】:

  • 谢谢肯。这是有道理的,而且很有帮助。您认为 textstat_simil 函数可以通过这种方法合理处理多大的逐个文档距离矩阵?
  • textstat_simil() 无法处理 1500 万个文档,但 textstat_proxy() 可以将min_proxyrank 设置得足够高。请参阅koheiw.net/?p=839 进行基准测试。
猜你喜欢
  • 1970-01-01
  • 2011-07-13
  • 2015-03-21
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多