簡體   English   中英

用於從關鍵字字符串創建關鍵字列表的php算法

[英]php algorithm for creating a list of keywords from a string of keywords

我有一個要搜索的關鍵字字符串,格式為:A,B + C,D + E,B + F,E + G + H,...
每個字母代表一個關鍵字,而+是我希望所有關鍵字都出現的時間。
關鍵字沒有確定的順序。
稍后,我將在數據庫中搜索包含這些關鍵字的名稱。
因此,按照我的示例,我將對包含以下內容的名稱感興趣:
A或(B和C)或(D和E)或(B和F)或(E和G和H)等

問題是我只能在數據庫中查詢包含單個關鍵字的名稱(這是API而不是我的數據庫),因此我需要列出關鍵字列表以檢索其名稱,然后檢查每個名稱以查看其是否包含所有相關關鍵字。

我需要一種算法來解析字符串並創建關鍵字列表,以最大程度地減少對數據庫的查詢。

例如,在我的示例中,我將獲得以下名稱:
一種
B並檢查它們是否還包含C或F
E,並檢查它們是否還包含D或(G和H)

因此該算法應創建要查詢的A,B,E關鍵字列表,並向每個關鍵字添加應與名稱一起出現的關鍵字。

我在php中工作,所以我更喜歡php中的答案,但是偽代碼也可以。 我希望很清楚...

Make empty array B.
Pass over the given array A, for each word X:
    If not apperars in B, add X to B as index, and set him value to 1/(No. of parts in this conjunction).
    Else, add 1/(No. of parts in this conjunction) to exist value.
Sort B by values, biggest first.
Make your queries from start to end.

邏輯是所有單詞按重要性排序。

一個單詞很重要,但是一個單詞與另一個單詞出現四次更重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM