如何在PHP中使用关联获取最频繁的单词

时间:2016-03-10 09:44:40

标签: php

我希望获得最常用的关联规则搜索词。

php代码包含两个文件。在其中插入数据的每个输入都存储在文件中以及它的关联,例如: - 如果某个人有搜索" apple"他还搜索了" orange"。现在我想获得最频繁的搜索词。

我已经得到了单词的频率,但现在我想用他们的关联来显示前10个频繁的单词

<?php
    $item = file('item.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
    $data = file('data.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );



    $item_array = array();

    foreach ($item as $value) {
        $total_per_item[$value] = 0;
        foreach($data as $item_data) {            
            if(strpos($item_data, $value) !== false) {
                $total_per_item[$value]++;
            }
        }
    }

        echo "<pre>";
    echo "Occurrance";
    print_r($total_per_item);

    $item1 = count($item) - 1; // minus 1 from count
    echo $item1."<br/>";
    $item2 = count($item); // minus 1 from count
    echo    $item2."<br/>";
    $item_loop = (pow($item1,2) + $item1) / 2;
            echo $item_loop;



    for($i = 0; $i < $item1; $i++) {
        for($j = $i+1; $j < $item2; $j++) {
            $item_array[$item[$i].'-'.$item[$j]] = 0;

            foreach($data as $item_data) {
            if((strpos($item_data, $item[$i]) !== false) && (strpos($item_data, $item[$j]) !== false)) {
                    $item_array[$item[$i].'-'.$item[$j]]++;
                }
            }

                                echo $item_array[$item[$i].'-'.$item[$j]]++."<br/>";

        }
    }

                    print_r($item_array);           

    ?>

file.txt包含以下数据

Milk
Butter
Bread
Oil
Cheese
Burger

data.txt包含以下数据: -

   Milk,Butter
    Butter,Oil
    Burger,Milk
    Milk,Cheese
    Oil,Butter
    Burger,Oil

0 个答案:

没有答案