0

ダウンロードしたコーパスから語学学習ツールを作りたいです。私が達成したいのは、ユーザーがその使用法を確認したい単語を入力すると、php クエリの出力にキーワードを含むリストが表示されることです。言語学習者にとって非常に有益です。sentencessentences

そのために、すべてのテキストを mysql データベースにインポートしてから、PHPを使用してアクセスします。私は実際にそれを行いましたが、効果的でsentencesはなく、適切に入力されておらず、クエリ時間が長すぎます。quotes.list のフォーマットは以下のテキストの通りです。

# "Andromeda" (2000) {Pitiless as the Sun (#2.4)}
Tyr Anasazi: Am I mistaken
  strangers unlimited access to this ship?
Captain Dylan Hunt: Why yes
  closely and see what they do with it. There's something not quite
  trust worthy about them
Tyr Anasazi: You occassion bouts of deviousness never fail to
  surprise me



# "Andromeda" (2000) {Point of the Spear (#3.16)}
Tyr Anasazi: Well even crippled I would much prefer to assume the
  offensive than instruct the crew to make peace with their various
  and sundry dieties!

ハッシュ間のテキストをmysql テーブルの各行にインポートするにはどうすればよいですか? 私のプロジェクトを容易にする他のアイデアを投稿していただけますか?

EDIT : Perl センテンス セグメンタ スクリプト「文-boundary.pl」を使用して、テキストを文に整列させました。テーブルを作成し、「整列されたテキスト」をテーブルにロードする最良の方法がわかりません。私は次のようないくつかのことを試しました:

  CREATE TABLE text
 (

        body TEXT

 )ENGINE = MYISAM

を使用して「整列テキスト」をロードすると

 LOAD DATA LOCAL INFILE '/home/user/Desktop/quotes' INTO TABLE text;

を使用してクエリを作成し、

 SELECT * FROM `text` WHERE MATCH(body) AGAINST('freedom' IN BOOLEAN MODE)

クエリ時間は約 2 分です。

以下で試しindexed tableましたが、テキストを読み込めませんでした。 body フィールドはNULLでいっぱいです。

 CREATE TABLE IF NOT EXISTS text  (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,          `body` VARCHAR(140) NOT NULL,  PRIMARY KEY (`id`)  ) ENGINE=MyISAM AUTO_INCREMENT=5000000 DEFAULT CHARSET=utf8;

EDIT2

本文フィールドにテキストをロードすることはできましたが、クエリ時間はまだ長すぎます。

  LOAD DATA LOCAL INFILE '/home/user/Desktop/quotes' INTO TABLE text (body);

手伝ってくれませんか?

4

1 に答える 1

0

私の質問の主なアイデアは少しトピックから外れていますが、私はついに引用符テーブルで動作する超高速文リスター mysql クエリを作成しました。上記の手順を完了した後、テーブルにフルテキスト モードを適用しました。

ALTER TABLE text ADD FULLTEXT(body);

テーブルにデータを入力した後に適用する必要があることに注意してください。そうしないと、インポート時間が長くなります。

localhost に php ファイルを作成し、それを使用してデータベースにアクセスし、検索された文を一覧表示しています。約 2500 の文を一覧表示するのに 2 秒もかかりません。

于 2013-10-31T12:45:58.950 に答える