我正在使用 Python 3.10.0 處理 sqlite3 模塊。我創建了一個包含英文單詞表的資料庫,其中一個列被創造性地命名為“word”。我的問題是,如何對給定單詞中最多包含字母的所有單詞進行采樣?例如,如果輸入是“建立”,則有效輸出可能是“意思”、“馴服”、“伙伴”、“團隊”、“建立”、“整潔”等。無效輸入由帶有任何其他字母的單詞組成,而不是在輸入中找到的字母。我對此進行了一些研究,但我發現的唯一與此接近的是使用 LIKE 關鍵字,這似乎是正則運算式匹配的有限版本。我提到使用 Python 3。
uj5u.com熱心網友回復:
你的問題非常模糊。
讓我回答一個相關的問題:“我怎樣才能有效地找到給定單詞的字謎?”
對此有一個標準的方法。只需按字母順序排列單詞中的所有字母,然后按排序順序存盤它們。
所以給定一個包含這些“已知”單詞的字典,我們將前三個映射到同一個字串:
- 蒼白 <--> aelp
- peal <-> aelp
- 請求 <--> aelp
- 計劃 <--> alnp
現在給定一個查詢詞“跳躍”,我們如何有效地找到它的字謎?
- 把它變成“aelp”。
- 查詢該字串,檢索三個匹配的字典單詞。
Sqlite 非常適合此類任務。它可以很容易地生成合適的列索引。
現在讓我們回到你的問題。我懷疑它比字謎更復雜一些。考慮使用相關方法。
翻閱每個字典單詞,以標準順序存盤 digram。所以對于“蒼白”,我們將存盤:
- 蒼白 <--> ap
- 蒼白 <--> 人
- 蒼白 <--> el
對所有其他字典單詞重復。
然后,在查詢時,如果輸入“leap”,您可能會在資料庫中查詢“el”、“ae”和“ap”。
請注意,“ae”錯過了,那里。如果這給您帶來困擾,在處理整個字典時,請隨意存盤所有 2 個字母組合,即使是不連續的組合。
可能使用三元組或所有 3 個字母組合會很有幫助。花一些時間來解決這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/406929.html
標籤:
上一篇:連接查詢不回傳空值
