2015-05-19 6 views
2

Как сравнить сходство слов в предложениях, а не символы в предложении.Сравнение использования слов в двух строках в PHP

Я знаю

similar_text($strA, $strB, $percentage); 

вернуть процент сходства между двумя строками, но как я мог бы сделать это за слова. Поэтому вместо того, чтобы смотреть на сходства между символами в строках, вместо этого он сравнивал бы содержимое разных слов.

Единственный способ, которым я мог бы это достичь, - это присвоить каждому слову (бит между пробелами) число и сравнить используемые числа, но это не может быть лучшим методом для решения этого вопроса. Насколько я вижу, это было бы просто чрезмерно обидно.

Любая помощь будет оценена по достоинству.

+0

Просьба указать некоторые возможные aproaches, чтобы решить эту проблему и то, что вы пытались –

+3

взорвать строки слов в массивы, array_intersect(), а затем посмотреть, сколько слов общего между ними. –

+0

@MarcB Хорошо, это работает, но могу ли я превратить эти числа в проценты, чтобы я мог найти, если эти строки более чем на n% похожи? (Или что-то подобное) – jamesbaber

ответ

0

кол-во (общие слова)/кол-во (всего слов в одном массиве) * 100. например. у вас есть массивы по 20 и 30 слов каждый, и ваше пересечение производит 5. так что 5/20 = 25% общего с одним массивом, а 5/30 = 16,7% общего с другим.

Представлено Marc B

Смежные вопросы