代码之家  ›  专栏  ›  技术社区  ›  Phil

Python:避免嵌套for loop NLP版本;有lib支持吗?

  •  0
  • Phil  · 技术社区  · 7 年前

    QUERY          COUNT
    "harry potter" 100
    "iron man"     93
    "harry pott"   32
    "harr pott"    5
    

    现在假设大多数用户使用完整单词进行搜索,我认为我可以通过以下方式有效地进行聚合(避免在整个索引上嵌套for循环):

    我按字母顺序对查询中的令牌进行排序,并生成一个映射“first\u token”,如:

    "h"         "harry potter"
    "ha"        "harry potter"
    "har"       "harry potter"
    "harr"      "harry potter"
    "harry"     "harry potter"
    

    分别是“第二个令牌”等等。。。

    "p"         "harry potter"
    "po"        "harry potter"
    "pot"       "harry potter"
    "pott"      "harry potter"
    "potte"     "harry potter"
    "potter"    "harry potter"
    

    现在我想知道是否有任何Python库可以让我更容易地实现所有这些。来自Java/JS的我还不太熟悉Python,我只知道它有很多用于NLP的工具。

    NLTK里有什么能帮我的吗?我认为至少应该有一个工具来矢量化字符串。也许使用它,您可以将“start with”操作作为简单的查找而不必手动生成地图?

    1 回复  |  直到 7 年前
        1
  •  0
  •   rishi    7 年前

    Autosuggest和许多其他特定于 处理得很好 Lucene PyLucene

    或者,如果你希望答案仅限于你所问问题的具体细节,可以试试 ngram Python的模块。细节 here