最佳开源/免费NLP引擎

最佳开源/免费NLP引擎,nlp,Nlp,比如说,我有一个著名短语的列表,比如: {“我爱你”,“你妈妈是个…”,“我想我怀孕了”}让我们说1000个这样的。现在,我希望用户将自由文本输入到文本框中,使用某种NLP引擎来消化文本,并从pull中找到10个最相关的短语,这些短语可能与文本相关 我认为最简单的实现可能是通过文字进行查找。每次挑选一个单词,并以某种方式寻找相似之处。不知道是哪个 最让我害怕的是我必须支持的词汇量。我是某种演示的开发者,我不喜欢在表格中填入单词的想法 我正在寻找一个免费的NLP引擎。我不知道它是用什么语言写的,但

比如说,我有一个著名短语的列表,比如: {“我爱你”,“你妈妈是个…”,“我想我怀孕了”}让我们说1000个这样的。现在,我希望用户将自由文本输入到文本框中,使用某种NLP引擎来消化文本,并从pull中找到10个最相关的短语,这些短语可能与文本相关

  • 我认为最简单的实现可能是通过文字进行查找。每次挑选一个单词,并以某种方式寻找相似之处。不知道是哪个
  • 最让我害怕的是我必须支持的词汇量。我是某种演示的开发者,我不喜欢在表格中填入单词的想法
  • 我正在寻找一个免费的NLP引擎。我不知道它是用什么语言写的,但它必须是免费的,而不是通过API调用收费的在线服务
  • 是一个易于使用的免费开源Python NLP库(根据许可的MIT许可证获得许可)。它提供了一个很好的包装器来包装优秀的和库

    解决问题的一个简单方法是从给定的文本中提取名词短语

    下面是一个例子

    这可能是一个起点。从那里你可以尝试其他的方法,比如评论或文章中提到的相似性方法。TextBlob还使名词短语提取变得容易


    全面披露:我是TextBlob的作者。

    看来TextBlob和ConeptNet是解决这个问题的最好办法

    您是否尝试过Apache中的
    OpenNLP
    ?当您使用NLP时,您将不得不管理大量数据!诀窍是真正使用您的语言,使其尽可能节省空间和时间,并抽象地表示数据(例如,在某些NLP方法中,向量
    [101]
    可以表示一个100字的文档,而
    [001]
    表示其他一些100字的文档)。你的担心不应该太多。这就是为什么我们有快速的机器和良好的编程语言比短语/句子相似性定义更多。谷歌或搜索“句子相似性”-一些有用的结果出来了。也看看漂亮的图书馆!!作为一名nltk+模式用户,我期待着查看它。话虽如此,但我不确定这会走多远,因为名词短语只是等式的一部分。。。简言之,我也怀疑是否有足够的数据使TF-IDF变得有用(尽管我很容易出错!)@Steve我发现你的答案很有趣。。。这个python包是否可以用于大型数据集。。。看看我的问题
    from text.blob import TextBlob
    
    text = '''
    The titular threat of The Blob has always struck me as the ultimate movie
    monster: an insatiably hungry, amoeba-like mass able to penetrate
    virtually any safeguard, capable of--as a doomed doctor chillingly
    describes it--"assimilating flesh on contact.
    Snide comparisons to gelatin be damned, it's a concept with the most
    devastating of potential consequences, not unlike the grey goo scenario
    proposed by technological theorists fearful of
    artificial intelligence run rampant.
    '''
    
    blob = TextBlob(text)
    print(blob.noun_phrases)
    # => ['titular threat', 'blob', 'ultimate movie monster', ...]