我想从 corpus 制作一个语言学习工具我下载了。我想要实现的是,用户将输入一个他想要在句子中查看其用法的单词,然后 php 查询输出将列出包含 的句子关键词。。对于语言学习者来说非常有指导意义。
为此,我想将所有文本导入 mysql 数据库,然后使用 PHP 访问它。我确实这样做了,但效果不佳,sentences
未正确填充,查询时间太长。
quote.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 表中的每一行? 您能否发布任何其他可以简化我的项目的想法?
编辑:我使用 Perl 句子分段器脚本“sentence-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)
查询时间大约需要两分钟。
我尝试了下面的索引表
,但无法将文本加载到其中,正文字段充满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;
编辑2:
我设法将文本加载到正文字段中,但查询时间仍然太长。
LOAD DATA LOCAL INFILE '/home/user/Desktop/quotes' INTO TABLE text (body);
你能帮我解决一下吗?
最佳答案
虽然我的问题的主要思想有点偏离主题,但我最后在报价表上做了一个超快的句子列表器 mysql 查询。完成上述步骤后,我将全文模式应用于表:
ALTER TABLE text ADD FULLTEXT(body);
请注意,必须在填充表后应用它,否则导入时间会更长。
我在本地主机中编写了一个 php 文件,我用它来访问数据库并列出搜索到的句子,只需不到 2 秒即可列出大约 2500 个句子。
关于mysql - 如何将 IMDBquotes.list 转储文件导入到每行包含哈希值 ("#"之间的文本的 mysql 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669665/