![](/img/trans.png)
[英]Creating a MYSQL query from results of splitting a string and using LIKE to match keywords in PHP
[英]creating keywords dynamically from mysql using php
我的結構:在每個類別中都有文本。 這些文本是其自己的條目。 因此,表“類別”和表“文本”。 每個類別中大約有90個文本,每個文本大約300個字符。
我想做的是為類別創建元標記(關鍵字)。 如何>獲取所有相關的“文本”,並對所有單詞進行排名,並選擇前10個單詞。 這些前10名將是該類別的關鍵字元標記。
現在,技巧>如何檢索前10個單詞。 當前>我已經將每個文本(是全文)分成每個單詞的數組。 這個數組(在php中)將相當長。 之后,我將每個單詞的頻率和頻率再次排序。 Voila排名前10位。
我尚未測試此過程,但我想可能需要一點時間。 它將被緩存,因此它只需要每周運行一次,但是,我仍然不想超時。
你們有什么秘訣嗎? 任何幫助表示贊賞。
謝謝,
莫里斯
好的,現在我在上面的評論中說了我的平安,我將介紹您的算法。
有幾種方法可以做到這一點,我將重點介紹大量使用PHP的方法,而讓其他SOer進行其他一些操作。
我假設您已經查詢了數據庫,並將所有單詞以空格分隔的列表存儲在變量$ texts中
// Sample data in $texts
$texts = "orange orange apple apple apple banana";
$withCounts = array_count_values( explode( ' ', $texts ) );
asort( $withCounts );
$topTen = array_keys( array_reverse( array_slice( $withCounts, -10 ) ) );
print_r( $topTen );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.