1

我想使用 PHP 创建一个作业,它能够遍历字典并将它的所有单词复制到我的数据库中。这是我唯一的要求。

正如我在这里问的那样,我正在寻找一些可以完成这项工作的 API。但我没有找到任何好的 API,而且看起来没有其他人找到。因此,唯一的可能性是创建一个工作,例如,以某种方式获取诸如 dict.cc 之类的网站的所有单词。

我怎么能开始建立这样的工作?我需要注意什么?对于这样的目的,您有任何意见或构想吗?

谢谢您的意见!

4

2 回答 2

1

为此,您可以创建一种dictionary以下格式(例如):

sauna, stoombad|Sauna
fitnessruimte|Fitnessroom
air-conditioning, airconditioning|Air Conditioning
wifi, wlan, internet, adsl, internettoegang|Internet
open haard|Open fire
tv|Television
sat, sat-tv|Satelite
afwasmachine|Vaatwasser
magnetron, combimagnetron|Microwave
oven, mini-oven|Oven
kluis|Safe
koelkast, koel-/vriescombinatie|Frige
koffiemachine|Coffemachine
diepvriezer|Freezer

比你应该读到filearrayexplode它进入valuesmain word例如:

foreach ($dictionary as $key => $value) {
  list($values, $option) = explode('|', $value);
  $values = explode(',', $values);
  $dictionary[$key] = array('option' => trim($option), 'values' => $values);
}

并使用以下方法检索所需的效果(您也可以array_walk()对每个项目使用并应用单独的函数来执行相同的操作):

foreach ($dictionary[$key]['values'] as $index => $value)
  $itemValues[$index] = '\b'.str_replace(array('/'), array('\/'), trim($value)).'\b'; // adding word boundary to each element and escaping slashes for regexp

并使用读取值数组组成 aRegExp pattern来搜索特定的单词集。

$pattern = '/'.implode('|', $itemValues).'/i'; // composing RegExpr pattern with case-insensitive option

使用它pattern,您可以使用preg_match任何文本。如果文本中存在任何单词,例如air-conditioningor airconditioningpreg_match将返回true并且您将知道Air Conditioning (字典中的单词 after |)在文本中可用。您正在针对您的文本preg_match对每个dictionary项目执行此操作,因此您可以收集您列出的单词。

您可以省略使用单词集并使用每行单词并更详细地测试文本(针对每个单词)。

这种技术非常适合用于提取或测试文本中是否存在一组单词(或不同变体或语言中的一个单词),并将它们链接一些概括的单词或含义。

于 2012-07-30T08:08:03.393 回答
1

您可以使用 PERL 或 curl 脚本来记录数据。在http://www.duden.de词典网站,使用如下简单思路

http://www.duden.de/suchen/dudenonline/

你用你的搜索词替换单词“ word ”。例如,如果您想获得 car 一词的含义,则 url 必须如下

http://www.duden.de/suchen/dudenonline/

因此,我们必须找到目标 url 并记录数据。Perl 脚本比 curl 更好。我不知道脚本..你只是谷歌它如何开发 perl 脚本来记录数据..

希望这些信息对你有用

于 2012-07-30T07:34:15.913 回答