Php 确定句子是否相似

Php 确定句子是否相似,php,mysql,Php,Mysql,我有上百个健身目标。下面是一个子集 “我想减掉10磅。” “在6分钟内跑完一英里。” “在7分钟内跑一英里。” “准备好泳衣,减掉5磅。” “能跑一英里不到七分钟。” 我如何找到类似健身目标的比赛?例如#1和#4都想减肥#3和#5都想在7分钟内跑一英里。此外,2、3和5都想跑得更快。我如何有效地搜索此健身目标表以确定哪些目标相似?目标存储在mysql表中。我正在寻找用PHP实现的方法。您可以标记一些关键字,如“weight”、“lbs”、“lbs”,稍后管理员可以检查这些关键字。您可以通过以下两

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

  • “我想减掉10磅。”
  • “在6分钟内跑完一英里。”
  • “在7分钟内跑一英里。”
  • “准备好泳衣,减掉5磅。”
  • “能跑一英里不到七分钟。”

  • 我如何找到类似健身目标的比赛?例如#1和#4都想减肥#3和#5都想在7分钟内跑一英里。此外,2、3和5都想跑得更快。我如何有效地搜索此健身目标表以确定哪些目标相似?目标存储在mysql表中。我正在寻找用PHP实现的方法。

    您可以标记一些关键字,如“weight”、“lbs”、“lbs”,稍后管理员可以检查这些关键字。

    您可以通过以下两种方式之一来完成此操作:

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

    更好的方法是使用。问题在于,您无法比较数据库中的两行,而是将文本字符串与表中的数据进行比较:

    示例基于:

    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)
    
    这将根据最佳匹配对结果进行排序


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

    这只是我的猜测,但您可以有多个布尔值

    runFaster=true;
    loseWeight=true;
    specificDistance=true; //Do they have a specific distance in mind?
    
    和一些定量值:

    weightLoss=3; //lbs
    speedIncrease=1 //km/h
    runDistance=7 //miles
    

    诸如此类的问题?

    对于一个如此宽泛的问题来说,这个问题实在太宽泛了,但我要问——这些目标都是用户定义的吗?如果你创建了用户可以填写的模板(例如“我想在$y中做$x”),那会容易得多。这是否可行?将这些作为每个健身目标的列。比赛越多越好!