【问题标题】:How to do an empirical analysis in stemming algorithm如何在词干算法中进行实证分析
【发布时间】:2018-06-11 11:27:42
【问题描述】:

大家好,我对如何对 lancaster 和 porter stemmer 等词干提取算法进行实证分析感到很困惑,因为与排序算法相比,它们没有时间效率。

我尝试的是在 nltk 上导入它们,然后在 python 中使用计时器对它们进行计时,并对数据进行 1000 次标准化,但我不太确定进行实证分析意味着什么词干算法还是完全不同?

【问题讨论】:

    标签: python nltk text-mining stemming


    【解决方案1】:

    经验分析本身仅意味着根据某些数据(与理论/逻辑评估相反)分析(通常评估)您的“材料”(算法、理论、应用程序、代码)。你使用什么样的数据(以及你评估什么样的东西)可能会有所不同。由于提取 1000 个单词所需的时间很容易衡量,因此确实很容易根据经验进行评估。另一种方法是评估输出的质量(我猜,这就是你想要做的)。当您有一些数据(例如,单词列表及其词干或引理)时,您可以执行此操作,运行您的词干分析器/词理分析器,然后查看它有多少次正确。 wordnet 中有一些东西可以帮助您(因为 wordnet 中的同义词集具有词根信息(您也可以将其解释为词干(词干化和词形还原之间存在差异,但是在 SO 上进行一些谷歌搜索或搜索将在更多详细)。

    以下内容可能会对您有所帮助:

    >>> from nltk.corpus import wordnet as wn
    >>> d = wn.synsets('dogs')[0]
    >>> d.lemmas()
    [Lemma('dog.n.01.dog'), Lemma('dog.n.01.domestic_dog'), 
    Lemma('dog.n.01.Canis_familiaris')]
    

    它获取单词“dogs”的第一个同义词(通常给定单词有多个同义词),并且通过使用 .lemmas() 您可以访问其词元。所以现在你有了单词-引理对。对输入的单词运行词干分析器/词元分析器,计算它使词干/词元正确的次数,对你拥有的每个词干分析器都执行此操作,然后就可以了。 您将不得不更详细地研究它(例如,哪个同义词集,以及采用哪个引理),但希望这对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2014-10-01
      相关资源
      最近更新 更多