首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定句子是否相似

确定句子是否相似
EN

Stack Overflow用户
提问于 2012-08-18 23:29:44
回答 3查看 486关注 0票数 0

我有上百个健身目标。下面是一个子集。

  1. “我想减10磅。”
  2. “跑一英里不到6分钟”
  3. “跑一英里不到7分钟”
  4. “准备好泳衣,减掉5磅。”
  5. “能跑一英里不到七分钟。”

我如何找到匹配的相似的健身目标?例如,#1和#4都想减肥,#3和#5都想在7分钟内跑一英里。另外,#2、#3和#5都希望跑得更快。如何有效地搜索这个健身目标表,以确定哪些目标是相似的?目标存储在mysql表中。我正在寻找PHP的实现。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-18 23:37:41

您可以通过以下两种方式之一进行此操作:

在PHP内部,您可以使用相似文本函数。然而,这是一种非常普通的做法。

更好的方法是使用Mysql全文搜索。问题是,您不能比较数据库中的两行,而是可以将文本字符串与表中的数据进行比较:

基于以下方面的实例:

代码语言:javascript
复制
mysql> CREATE TABLE articles (
    ->   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    ->   title VARCHAR(200),
    ->   body TEXT,
    ->   FULLTEXT (title,body)
    -> ) ENGINE=MyISAM;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO articles (title,body) VALUES
    -> ('MySQL Tutorial','DBMS stands for DataBase ...'),
    -> ('How To Use MySQL Well','After you went through a ...'),
    -> ('Optimizing MySQL','In this tutorial we will show ...'),
    -> ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
    -> ('MySQL vs. YourSQL','In the following database comparison ...'),
    -> ('MySQL Security','When configured properly, MySQL ...');
Query OK, 6 rows affected (0.00 sec)

mysql> SELECT id, MATCH (title,body) AGAINST ('Tutorial')
    -> FROM articles;
+----+-----------------------------------------+
| id | MATCH (title,body) AGAINST ('Tutorial') |
+----+-----------------------------------------+
|  1 |                        0.65545833110809 |
|  2 |                                       0 |
|  3 |                        0.66266459226608 |
|  4 |                                       0 |
|  5 |                                       0 |
|  6 |                                       0 |
+----+-----------------------------------------+
6 rows in set (0.00 sec)

这将根据最佳匹配对结果进行排序。

您可以很好地使用它从数据库中获取一行,然后使用它查找最匹配的行。

票数 1
EN

Stack Overflow用户

发布于 2012-08-18 23:34:14

您可能会标记一些关键字,如“权重”、"lbs“、”磅“,以后管理员可以检查这些关键字。

票数 1
EN

Stack Overflow用户

发布于 2012-08-18 23:43:52

这只是我戳黑暗,但你可以有多个布尔值。

代码语言:javascript
复制
runFaster=true;
loseWeight=true;
specificDistance=true; //Do they have a specific distance in mind?

以及一些定量值:

代码语言:javascript
复制
weightLoss=3; //lbs
speedIncrease=1 //km/h
runDistance=7 //miles

像那样吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12023046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档