我正在构建一个系统,该系统将接收与文件管理相关的查询,例如 删除,复制,移动,创建新项目...
那么,从中提取信息的最佳方法是什么,如下所示:
can you delete file "file name" from "folder name"
然后系统应收集:
Action : deleting
upon : "file name"
destination : "folder name"
答案 0 :(得分:1)
自然语言处理相当复杂,并且取决于基本命令集的广泛程度,许多挑战使解析这样的非结构化自然语言查询变得比看起来更困难。
但是,通常,您可能会尝试通过part-of-speech tagger运行查询以提取动作的动词短语,开始/目标的动词-对象对等。然后将这些术语映射到列表中每个动作的可接受同义词。例如,您可能具有“删除”的同义词列表,例如['delete', 'remove', 'rm', 'toss', 'eliminate', ...]
等,如果动词短语包含任何这些单词,则将动作设置为delete。关于如何使用NLTK POS标记器和其他工具来解析查询,请看一下本教程,该教程涵盖了分析句子语义的许多困难:Analyzing the Meaning of Sentences
您可能还想查看以下相关主题:
您曾经提到找到有关此问题的学术论文,如果您正在寻找更多期刊文章,我建议您搜索术语“自然语言查询”(及其变体)。从2010年至今的search for this on Semantic Scholar的搜索结果超过75,000。