作为一个项目,我必须分析电影评论以确定它们是正面的还是负面的。
在 MySQL 中,我有一个表用于正面词,另一个表用于负面词,另一个表用于存储一些电影评论。
我只是想知道如何使用 PHP 创建一些基本的东西,让我可以查看其中一个电影评论,然后使用正面和负面的词,看看它们是否出现在评论中,以确定是否评论是正面的还是负面的。
这是我到目前为止的全部,它打印出一条评论:
<?php
// Connects to your Database
mysql_connect("localhost", "root", "");
mysql_select_db("film_reviews");
$result = mysql_query("SELECT * FROM review WHERE id = '1'");
while($row = mysql_fetch_array($result))
{
echo $row['filmreview'];
echo "<br />";
}
如有任何帮助,我们将不胜感激。
最佳答案
撇开存在根本性缺陷的方法不谈,您只需将评论拆分为单词,然后将它们连接到您的表格中。例如
CREATE TABLE review_words (
film_id INTEGER NOT NULL,
review_id INTEGER NOT NULL,
rword VARCHAR(30),
occurrences INTEGER NOT NULL
PRIMARY KEY (rword, review_id) /* order is important */
/* you probably want some more indexes too */
);
然后是id为$revid的负面评价词:
SELECT SUM(occurrences)
FROM review_words rw, negative_words nw
WHERE rw.rword=nw.nword
AND rw.review_id=$revid;
对于积极的词也是如此。
稍微好一点的方法是将正面和负面的词保存在同一个表(比如 review_dict)中并带有一个权重因子:
SELECT SUM(rd.weight * rw.occurrences)
FROM review_words rw, review_dict rd
WHERE rw.rword=rd.dword
AND rw.review_id=$revid;
请注意,如果不处理名词中的复数和动词的中性时态,您可能希望首先规范化单词 - 至少去除空格并使用一致的大小写。
关于php - 根据其他表信息从表中检索行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121628/