1

単語とその抑揚を検索するための辞書を実装したいと思います。辞書のサイズは約 60MB で、txt ファイルに格納されています。

現在、辞書全体 (60MB) を変数に渡してから、興味深い単語を検索しています。なんか適当じゃない印象が否めない(辞書だけで60MBメモリ確保)

誰でも他のソリューションを推奨できますか? ファイルの内容全体をメモリに保存せずに、ファイル内の興味深いフレーズを検索する方法が他にもあるのではないでしょうか? または、辞書全体をMySQL dbに入れると役立つかもしれません(その辞書をスライスし、すべての単語を追加のIDでdbに入れて、同じルートから来る異なる単語間の語形変化を認識することができます)

4

2 に答える 2

4

もちろん、DB内に辞書を入れると役立ちます。データベースは、内部インデックス作成とデーモンとしてシステム メモリに存在するため、非常に高速に動作します。クエリを使用すると、語形変化の検索もより簡単、高速、効率的になります。

SELECT * FROM dictionary WHERE word LIKE "devel%"

「開発中」、「開発者」、「開発」などになります。また、他にもたくさんの可能性があります。唯一の欠点は、データベース サーバーをインストールする必要があることです。一方、txt ファイル全体をメモリにロードすると、20 人のユーザーが同時に接続すると、スクリプトが毎回新たに開始されるため、1GB を超えるメモリが消費されます。

于 2012-05-25T18:41:58.247 に答える
2

検索するためにメモリに 60MB を入れるのはばかげています....ここではデータベースが唯一の正しい答えです。昨日、辞書に関する同様の質問にここで答えました。

データベースに入ったら、ここで回答されている全文検索も調べてください。

于 2012-05-25T18:40:56.173 に答える