使用预定义词典查找问题类别

时间:2019-05-06 02:19:18

标签: python nlp gensim

我想创建一个函数,当用户输入问题时它将自动建议类别。

我要做的第一步是创建带有关键字和值(类别)的预定义词典,例如,示例词典如下所示:

{sandra Bullock:电影女演员;鸟盒(公司):netflix原始电影;鸟箱(书):小说,恐怖书;鸟框:容器对象}。

我完成的第二步是提取问题中的关键字。例如,如果有人问“ sandra Bullock在鸟箱中的表现如何?”,在这种情况下,我的关键字提取将自动提取“ sandra Bullock表现”,“ bird box”。

问题是,由于我提取的关键字与字典中的关键字不完全匹配,因此我需要找到一种明智的说法,即“ sandra bullock性能”与“ sandra bullock”非常接近,并且“鸟箱”比“鸟箱(书)”更接近“鸟箱(公司)”。

到目前为止,我已经尝试运行一种简单的算法来匹配壁橱。对于提取的每个关键字。首先,我检查是否存在完全匹配。如果没有,那么我将开始搜索可能的n-gram解,从N到1。因此,对于“ sandra bullock性能”,我将开始搜索bi-gram,“ sandra bullock”,“ bullock性能” ”。如果找到完全匹配的内容,则停止。它并不总是有效。在“ bird box”关键字的情况下,由于没有完全匹配,因此当我运行此简单算法时,我将搜索uni-gram,即,我将匹配“ bird”和“ box”。使用此算法,我的类别输出将是:电影女演员,动物,容器对象。

我在现阶段的一些想法是(1)也许我需要找到一种识别名称实体的方法,(假设输入是小写),所以伪造是行不通的。 (2)尽管我不确定如何使用训练数据集的结果,但要获取更多文本(特别是在娱乐文章中)并在其上训练word2vec。

尽管此示例很小,但我的实际词典大约为1GB,因此搜索关键字需要花费大量时间。任何解决方案都必须考虑性能问题。

非常感谢您!

0 个答案:

没有答案