1

有谁知道我可以在哪里找到 SQL 转储形式的英语单词列表?

我在网上找到了一个单词列表,但它是一个很大的纯文本文件;单词由换行符分隔。我尝试编写一个 PHP 脚本来循环遍历单词并将它们插入到数据库中,但在读取大文件时很快遇到了内存问题。我已将文件拆分为 4 个较小的文件,但仍然出现内存错误。如果有人知道如何将我当前的文件转换为更导入的朋友格式,请告诉我。

4

4 回答 4

5

使用LOAD DATA INFILE。从文档:

LOAD DATA INFILE 语句以非常高的速度将文本文件中的行读取到表中。

像这样的东西应该工作:

LOAD DATA INFILE 'your/path/your_file.txt' INTO TABLE your_table (your_column_name);
于 2009-12-14T03:32:14.163 回答
0

http://corpora.uni-leipzig.de/download.html

几个不同语言(包括英语)的语料库......

于 2009-12-14T03:31:19.323 回答
0

您的方法应该可以正常工作,您只需要更改读取文件的方式。我猜你正在使用file_get_contents或类似的东西来读取整个文件,当你可以逐行执行并避免内存问题时。尝试类似fscanf()

$handle = fopen("yourfile.txt", "r");
while ($info= fscanf($handle, "%s\t%s\t%s\n")) {
    list ($field1, $field2, $field3) = $info;
    //... do something with the values
}

fclose($handle);
于 2009-12-14T03:35:15.513 回答
0

如果您愿意在混合中使用一些 python,这里有一篇很好的文章:

处理和使用维基百科转储的方法

(提取维基百科数据(有你的英文文本)并推入 MySQL 数据库)

于 2009-12-14T05:07:19.333 回答