Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 存储和搜索相似短语_Mysql_Database_Database Normalization - Fatal编程技术网

Mysql 存储和搜索相似短语

Mysql 存储和搜索相似短语,mysql,database,database-normalization,Mysql,Database,Database Normalization,假设我想在数据库中存储一个项目,比如访问西班牙。但是,我将允许用户提交,我希望跟踪所有希望访问西班牙的用户,但是我希望他们能够键入visit Spain以及Go to Spain、See Spain或tour Spain。 我正在寻找一种有效的方法来做到这一点。目前,我的想法使我沿着以下路线简化: 名词 独一无二的 名词 动词[fk] 动词 独一无二的 动词 同义词 独一无二的 动词[fk] 同义词 我是偏离了底线,还是这是最好的解决方法?我在寻找性能和易维护性…您应该研究一些简单的自然语言处理

假设我想在数据库中存储一个项目,比如访问西班牙。但是,我将允许用户提交,我希望跟踪所有希望访问西班牙的用户,但是我希望他们能够键入visit Spain以及Go to Spain、See Spain或tour Spain。 我正在寻找一种有效的方法来做到这一点。目前,我的想法使我沿着以下路线简化:

名词 独一无二的 名词 动词[fk] 动词 独一无二的 动词 同义词 独一无二的 动词[fk] 同义词
我是偏离了底线,还是这是最好的解决方法?我在寻找性能和易维护性…

您应该研究一些简单的自然语言处理NLP

理想情况下,您需要规范化输入,以便可以搜索具有相同规范化值的用户

首先对输入进行标记,将单词分开。访问西班牙将变成访问、西班牙和西班牙 寻找具有等价性的单个单词。例如,对于许多事情,您可以忽略case。 使用表查找查找更高级的单字等效项,例如Visit=>Tour,请参阅=>Tour。通过这次访问,西班牙和See,西班牙都将被翻译成旅游,西班牙 寻找短语等价物。例如,go to=>Visit。这将使Go,to,Spain成为Tour,Spain。 应用模式匹配。例如,Tour X和Y=>Tour X,Tour Y可以成为两个单独的项目,Tour,Spain和Tour,France。 应用所有转换后,存储生成的规范化项。 您的工作是定义翻译类,查找这些翻译的许多实例,然后将它们应用到您的输入中


一旦你有了一个规范化的项目,你就可以搜索拥有相同规范化项目的其他用户。

你应该研究一些简单的自然语言处理NLP

理想情况下,您需要规范化输入,以便可以搜索具有相同规范化值的用户

首先对输入进行标记,将单词分开。访问西班牙将变成访问、西班牙和西班牙 寻找具有等价性的单个单词。例如,对于许多事情,您可以忽略case。 使用表查找查找更高级的单字等效项,例如Visit=>Tour,请参阅=>Tour。通过这次访问,西班牙和See,西班牙都将被翻译成旅游,西班牙 寻找短语等价物。例如,go to=>Visit。这将使Go,to,Spain成为Tour,Spain。 应用模式匹配。例如,Tour X和Y=>Tour X,Tour Y可以成为两个单独的项目,Tour,Spain和Tour,France。 应用所有转换后,存储生成的规范化项。 您的工作是定义翻译类,查找这些翻译的许多实例,然后将它们应用到您的输入中


一旦你有了一个规范化项目,你就可以搜索拥有相同规范化项目的其他用户。

在你的列上建立一个全文索引,然后使用MySQL。我使用InnoDB,所以我可以利用外键,这意味着我不能使用全文索引…取决于您使用的MySQL版本:从v5.6开始,InnoDB支持全文搜索。在您的列上建立全文索引,然后使用MySQL。我使用InnoDB,这样我就可以利用外键,这意味着我不能使用全文索引…这取决于您使用的MySQL版本:从v5.6开始,InnoDB支持全文搜索。我认为在回答中不适合这样说:我有一个朋友参加了Coursera的NLP课程,并且非常喜欢它。看起来他们的视频在预览版下仍然可见。我不认为把这一点放在答案中是合适的:我有一个朋友参加了Coursera的NLP课程,并且非常喜欢它。看起来他们的视频在预览中仍然可见。