1. 程式人生 > >JWPL工具處理維基百科wikipedia數據用於NLP

JWPL工具處理維基百科wikipedia數據用於NLP

其中 write cor dep mon UNC 資訊 roc 設置

JWPL處理維基百科數據用於NLP

處理zhwiki

JWPL是一個Wikipedia處理工具,主要功能是將Wikipedia dump的文件經過處理、優化導入mysql數據庫,用於NLP過程。以下以zhwiki-20170201為例。

JWPLDataMachine用以處理wiki dump數據,最終將數據導入mysql,用於NLP,表結構不同於wkipedia官方的表,這裏的表是針對於NLP目的的。處理步驟如下:

  1. 數據格式轉換。處理zhwiki dump的文件,轉換為tsv格式數據,以便用mysqlimport導入到mysql中,命令
java -Xmx4g -cp $M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:$M2_REPO/de/tudarmstadt/ukp/wikipedia/de.tudarmstadt.ukp.wikipedia.datamachine/1.1.0/de.tudarmstadt.ukp.wikipedia.datamachine-1.1.0.jar:$M2_REPO/de/tudarmstadt/ukp/wikipedia/de.tudarmstadt.ukp.wikipedia.mwdumper/1.1.0/de.tudarmstadt.ukp.wikipedia.mwdumper-1.1.0.jar:$M2_REPO/de/tudarmstadt/ukp/wikipedia/de.tudarmstadt.ukp.wikipedia.wikimachine/1.1.0/de.tudarmstadt.ukp.wikipedia.wikimachine-1.1.0.jar:$M2_REPO/javax/activation/activation/1.1/activation-1.1.jar:$M2_REPO/javax/mail/mail/1.4.1/mail-1.4.1.jar:$M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar:$M2_REPO/net/sf/trove4j/trove4j/3.0.2/trove4j-3.0.2.jar:$M2_REPO/org/apache/ant/ant/1.8.3/ant-1.8.3.jar:$M2_REPO/org/apache/ant/ant-launcher/1.8.3/ant-launcher-1.8.3.jar:$M2_REPO/org/springframework/spring-asm/3.1.1.RELEASE/spring-asm-3.1.1.RELEASE.jar:$M2_REPO/org/springframework/spring-core/3.1.1.RELEASE/spring-core-3.1.1.RELEASE.jar:$M2_REPO/org/springframework/spring-beans/3.1.1.RELEASE/spring-beans-3.1.1.RELEASE.jar de.tudarmstadt.ukp.wikipedia.datamachine.domain.JWPLDataMachine chinese 頁面分類 全部消歧義頁面 zhwiki-20170201/

其中:

  • $M2_REPO是maven2本地庫的目錄,這個目錄默認為~/.m2/repository,可通過shell命令定義環境變量,命令:export M2_REPO=~/.m2/repository,請確保已經下載依賴包。

  • zhwiki-20170201/文件夾下有三個文件zhwiki-20170201-categorylinks.sql.gz zhwiki-20170201-pagelinks.sql.gz zhwiki-20170201-pages-articles.xml.bz2。根據實際情況改為自己存放這三個文件的目錄。
  • -Xmx4g參數表示設置JVM最大內存為4g,在處理這個版本的wiki dump時,內存消耗實際上沒超過2g,主要是消耗cpu資源。程序處理時,會在當前目錄生成以日期命名的.txt日誌文件,整個過程約一個小時。

  1. 創建數據庫。linux shell下命令:
$ mysqladmin -u[USER] -p create [DB_NAME] DEFAULT CHARACTER SET utf8;

或mysql shell下

mysql> CREATE DATABASE [DB_NAME] DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 

其中[USER], [DB_NAME]為用戶名和數據庫DB名,如在mysql shell中創建db命令如下:

mysql> CREATE DATABASE zhjwpl DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

註意:務必指定編碼為utf8。

  1. 創建表。把jwpl_tables.sql中的內容復制粘貼到本地文件,在mysql shell中執行。
mysql> SOURCE jwpl_tables.sql;
  1. 簡繁轉換。(此步驟非必要,但建議完成)中文維基百科中有大量簡繁混雜文本,連類別名、條目標題有的是簡體,有的是繁體,我們可以將繁體轉換為簡體,盡管簡繁轉換不是簡單的一一映射,一簡對多繁、一繁對多簡,但是,就字符長度來看,簡繁是一對一的,即一個繁體字符轉換到簡體也只占一個字符。我們可以利用opencc工具進行簡繁轉換。由於導入數據庫時只導output/*.txt(output中所有txt文件,實際上也只有txt文件,共11個),則只對output中的txt文件轉換即可。output中,實際上只有Page.txt, PageMapLine.txt, page_categories.txt, Category.txt, MetaData.txt, page_redirects.txt 這6個文件包含中文,這些文件需要利用opencc進行轉換,而category_inlinks.txt, category_outlinks.txt, category_pages.txt, page_inlinks.txt, page_outlinks.txt這5個文件只包含數值ID,沒有中文,不需要轉換。我們這裏把output中需要轉換的文件進行處理後輸出到與output平行結構的目錄chs中,文件名是對應的,將不需要轉換的文件直接復制到chs目錄中(或做軟鏈接)。轉換時的命令類似:
$ opencc -c t2s -i output/Page.txt -o chs/Page.txt
  1. 導入數據。JWPLDataMachine處理wiki dump的三個文件時,會在其所在目錄下創建output目錄,並生成11個txt文件,文件中數據是tsv格式(tab separated values),在mysql shell中可通過LOAD DATA INFILE...命令來導入,但命令不如使用mysqlimport方便,故不在mysql shell中導入,利用mysqlimport工具導入,假如當前工作目錄是wiki dump三個文所在目錄(zhwiki-20170201/),命令是:
$ mysqlimport -u root -p --local --default-character-set=utf8 zhjwpl chs/*.txt

執行一段時間(大約一兩個小時)後,數據都被導入,輸出提示每個表成功插入的記錄(Recores)數量,這些數量和對應txt文件的行數應該是一致的。另外輸出提示有幾個警告(warning),忽略之。如果沒有進行簡繁轉換,命令中的chs應該換為output目錄。

使用

需要依賴de.tudarmstadt.ukp.wikipedia:de.tudarmstadt.ukp.wikipedia.api:${version},使用較簡單,參考官方示例。

說明

處理dump的文件時,JWPLDataMachine類接受以下幾個參數: [LANGUAGE] [MAIN_CATEGORY_NAME] [DISAMBIGUATION_CATEGORY_NAME] [SOURCE_DIRECTORY]。
參數LANGUAGE指處理維基百科的語言,中文維基百科為chinese。
MAIN_CATEGORY_NAME指的是Wikipedia層次分類體系中的頂級類別名稱,這個類別名可能會隨時間變化,目前為“頁面分類”(2017年3月)。
DISAMBIGUATION_CATEGORY_NAME所有消歧頁都會包含的類別。不像官網描述的是包含子消歧類別的類別(Category:“消歧義”),也不像官網所舉英文例對應中文的類別。不然以“消歧義”(或在帶繁體版中用其對應繁體版)得到的消歧頁只有13個。這裏參數應該是“全部消歧義頁面”。

如何獲取頂級類別名:隨便搜索一篇文章,如“分類”,點擊其中一個類別標簽,轉到類別頁面,URL類似/wiki/Category:分類系統,在“分類:分類系統”下方有個導航條,“頁面分類 > 人文學科 > 文學 > 書籍 > 圖書資訊科學 > 分類系統”,點擊一級導航“頁面分類”,進入頁面“分類:頁面分類”頁面,文章標題是 “分類:頁面分類”,正文有描述“這裏是維基百科頁面分類系統的最高級”,那麽頂級類別就是這個頁面中描述的類別,這個頁面對應的URL類似/wiki/Category:頁面分類,則類別名是“頁面分類”,即URL中的名稱,而非“分類:頁面分類”或“頁面分類”,類別名(category)、條目名(page title)在數據庫中有的是繁體,即使是簡體中文語言下的維基百科。

使用頂層類別名“頁面分類”和消歧義類別名“消歧義”進行處理後,在得出的1266195個page中,只有13個消歧頁(disabiguation page),剩下的是article page,不知為何這麽少,感覺不合理。13個消歧頁的id分別是1832186 5376724 5420049 5431949 5455483 5463308 5470979 5511092 5544906 5553846 5553849 5566592 5566629,查看id為1832186的page,title為“義膽雄心”,於在線zhwiki查看,確實是消歧頁,也就說簡體的“消歧義”類別也是消歧類型,但只有13個結果顯然也讓人擔心。

沒有看dataMachine工具包的源碼,擔心是簡繁體原因導致消歧頁丟失,不想以繁體的“消歧義”作為JWPLDataMachine的消歧類別參數再嘗試處理數據,過程太復雜。轉而首先進行zhwiki dump數據的簡繁轉換,然後再用jwpl工具處理,這樣jwpl接觸到的數據就全是簡體。

上述步驟得小改一下。假設處於目錄zhwiki-20170201/,其中有下載的三個主要文件zhwiki-20170201-pagelinks.sql.gz zhwiki-20170201-categorylinks.sql.gz zhwiki-20170201-pages-articles.xml.bz2,進行以下步驟:

  1. 先把zhwiki dump數據轉為簡體。先解壓3個文件,得到純文本文件,而後用opencc轉換,之後壓縮成對應壓縮格式的文件。命令如下:
#把3個壓縮文件解壓為文本文件
gunzip -k zhwiki-20170201-categorylinks.sql.gz    #解壓
gunzip -k zhwiki-20170201-pagelinks.sql.gz    #解壓
bunzip2 -k zhwiki-20170201-pages-articles.xml.bz2    #解壓

cd .. && mkdir chswiki-20170201 #進入上級目錄,並創建一個與zhwiki-20170201/平行的目錄,以存放簡體版中文維基數據

#對3個文本文件進行繁體轉簡體操作
opencc -c t2s -i zhwiki-20170201/zhwiki-20170201-categorylinks.sql -o chswiki-20170201/chsziki-20170201-categorylinks.sql    #繁體轉簡體
opencc -c t2s -i zhwiki-20170201/zhwiki-20170201-pagelinks.sql -o chswiki-20170201/chswiki-20170201-pagelinks.sql    #繁體轉簡體
opencc -c t2s -i zhwiki-20170201/zhwiki-20170201-pages-articles.xml -o chswiki-20170201/chswiki-20170201-pages-articles.xml    #繁體轉簡體

#將3個簡體版文本文件壓縮成對應格式的文件:2個.gz,一個.bz2
cd chswiki-20170201
gzip chswiki-20170201-categorylinks.sql
gzip chswiki-20170201-pagelinks.sql
bzip2 chswiki-20170201-pages-articles.xml
  1. 與上述的步驟一樣了,用JWPLDataMatchine工具處理數據,但頂級類別名和消歧義類別名都是簡體的,目錄參數是對應的簡體版數據的目錄chswiki-20170201/,即“頁面分類”、“消歧義”。命令行
cd .. # 工作目錄換到上一級,即chswiki-20170201/與zhwiki-20170201/目錄所在的目錄
java -Xmx4g -cp $M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:$M2_REPO/de/tudarmstadt/ukp/wikipedia/de.tudarmstadt.ukp.wikipedia.datamachine/1.1.0/de.tudarmstadt.ukp.wikipedia.datamachine-1.1.0.jar:$M2_REPO/de/tudarmstadt/ukp/wikipedia/de.tudarmstadt.ukp.wikipedia.mwdumper/1.1.0/de.tudarmstadt.ukp.wikipedia.mwdumper-1.1.0.jar:$M2_REPO/de/tudarmstadt/ukp/wikipedia/de.tudarmstadt.ukp.wikipedia.wikimachine/1.1.0/de.tudarmstadt.ukp.wikipedia.wikimachine-1.1.0.jar:$M2_REPO/javax/activation/activation/1.1/activation-1.1.jar:$M2_REPO/javax/mail/mail/1.4.1/mail-1.4.1.jar:$M2_REPO/log4j/log4j/1.2.16/log4j-1.2.16.jar:$M2_REPO/net/sf/trove4j/trove4j/3.0.2/trove4j-3.0.2.jar:$M2_REPO/org/apache/ant/ant/1.8.3/ant-1.8.3.jar:$M2_REPO/org/apache/ant/ant-launcher/1.8.3/ant-launcher-1.8.3.jar:$M2_REPO/org/springframework/spring-asm/3.1.1.RELEASE/spring-asm-3.1.1.RELEASE.jar:$M2_REPO/org/springframework/spring-core/3.1.1.RELEASE/spring-core-3.1.1.RELEASE.jar:$M2_REPO/org/springframework/spring-beans/3.1.1.RELEASE/spring-beans-3.1.1.RELEASE.jar de.tudarmstadt.ukp.wikipedia.datamachine.domain.JWPLDataMachine chinese 頁面分類 消歧義 chswiki-20170201/
  1. 後面步驟與上述步驟一樣,當然,不再進行上述步驟4中的簡繁轉換。
  2. 結果。得到的結果和之前一樣,13個同樣的消歧頁。等有時間再找原因吧。

JWPL處理enwiki

命令行

...JWPLDataMachine english Contents All_disambiguation_pages wikidata

開始運行時間2017-04-02 00:52:27 星期日,結束時間2017-04-02 14:33:13 星期日
輸出記錄條數信息

nrOfCategories: 1572174
nrOfPage: 13094655
nrOfRedirects before testing the validity of the destination:7717778

內存峰值不超過2G,cpu(4核)使用率大約在15%~45%。

enwiki-20170320
英文維基百科。用jwpl處理導入mysql後,對應database數據目錄有70G大小。

mysql表意義

JWPL只關心namespace=0的page(即常見的詞條)。jwpl會生成的幾張表,對於維基百科一個條目(page)相關的表(page, category等),有字段id、pageId,都唯一標識page,二者是一致的,可認為前者就是page_id。各表及其字段含義如下:

  • category --> 類別信息(維基百科的category)

    • pageId:類別ID,唯一

    • name:類別名

Wikipedia的類別具有層次結構,想象成一棵類別樹,對於category的inlink、outlink,指的是category父類、子類,A->B即B的inlink為A,則A是B的父類。知道了inlink,outlink就不難理解了。

  • category_inlinks --> 類別父類??

    • id:類別ID,不唯一

    • inLinks:該類別父類ID

  • category_outlinks --> 類別子類

    id:類別ID,不唯一

    outLinks:該類別子類ID,也就是該類別指向的那些類別的ID

  • category_pages --> 類別-頁面關聯

    • id:類別ID,不唯一

    • pages:屬於該類別的頁面

  • MetaData --> 該版本wikipedia的元信息,只有一條記錄

    • language:語言

    • disambiguationCategory:運行DataMachine填寫的消歧類別

    • mainCategory:運行DataMachine填寫的頂層類別
    • nrofPages:頁面個數
    • nrofRedirects:重定向個數
    • nrofDisambiguationPages:消歧頁面個數
    • nrofCategories:類別個數
    • version

  • Page --> 頁面信息(維基條目),表數據不包含重定向頁面,但包含消歧頁,後者通過字段isDisambiguation標記。

    • pageId:頁面ID
    • name:名字
    • text:全文,包含wikimeida的標記信息
    • isDisambiguation:是否是消岐頁面
  • page_categories --> 頁面與類別的關系表與category_pages信息重復

  • page_inlinks --> 指向頁面的頁面信息
    • id:實際上是頁面ID,非主鍵且不唯一
    • inLinks:指向該頁面ID的頁面ID
    • (id,inlinks)組也不唯一
  • page_outlinks 頁面外鏈信息表
    • id:頁面ID,不唯一
    • outlinks:該頁面ID指向的頁面ID
    • (id, outlinks)組合也不唯一,並且存在outlinks指向自己的情況,如chsjwpl中存在id=13,outlinks=13。
  • page_redirects 重定向記錄
    • id:重定向目標頁面ID,不唯一
    • redirects:(字符串類型)被重定向的title
    • 存在記錄“139 孫文”,指的是title為“孫文”的page是一個重定向page,它指向的是id為139的page(article)。
  • PageMapLine --> 所有頁面的title信息,處理重定向等頁面時有用處
    • id:該頁面ID
    • name:頁面title
    • pageID:頁面ID,如果該頁面是重定向頁面,該pageID是其指向的那個包含信息的頁面ID
    • stem:???
    • lemma:???

下載Maven依賴包

首先正確安裝maven工具,以命令mvn --version測試mvn,輸出maven的版本信息則安裝正確。

上面的一大串依賴包要挨個手動下載就太麻煩了,可利用mvn命令自動下載,步驟如下:

  1. 進入臨時目錄,創建一個臨時項目目錄,創建pom.xml,填入依賴信息。
cd /tmp
mkdir tmp-proj && cd tmp-proj

然後創建pom.xml文件,並填入以下內容並保存
```xml

<groupId>whatever</groupId>
<artifactId>whatever</artifactId>
<version>whatever</version>
<name>whatever</name>
<dependencies>
    <!-- .api在訪問時使用 -->
    <dependency>
        <groupId>de.tudarmstadt.ukp.wikipedia</groupId>
        <artifactId>de.tudarmstadt.ukp.wikipedia.api</artifactId>
        <version>1.1.0</version>
    </dependency>
    <!-- .api依賴的 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency>
    <!-- .datamachine處理數據時使用 -->
    <dependency>
        <groupId>de.tudarmstadt.ukp.wikipedia</groupId>
        <artifactId>de.tudarmstadt.ukp.wikipedia.datamachine</artifactId>
        <version>1.1.0</version>
    </dependency>
</dependencies>


2. 自動下載jar包。在命令行執行:bash
#確保處於pom.xml所在目錄,然後執行下列命令
mvn dependency:resolve
```
mvn工具讀取pom.xml文件,並自動下載所有依賴的jar包到maven倉庫

  1. 如果想知道maven項目依賴的所有jar包的本地路徑,可通過命令mvn dependency:build-classpath -Dmdep.outputFile=/tmp/proj-classpath.txt得知所依賴jar包的文件路徑,以路徑分隔符(Windows下是分號,linux下是冒號)分割路徑,其中命令行參數-Dmdep.outputFile=/tmp/proj-classpath.txt意思是告訴mvn工具,把jar包路徑輸出到/tmp/proj-classpath.txt文件中,這是個可選參數,如果不加,將隨mvn的其他信息輸出到標準輸出。

附:

文件jwpl_tables.sql內容:

/*******************************************************************************
 * Copyright 2016
 * Ubiquitous Knowledge Processing (UKP) Lab
 * Technische Universit?t Darmstadt
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *******************************************************************************/
-- MySQL dump 10.11
--
-- Host: localhost    Database: jwpl_tables
-- ------------------------------------------------------
-- Server version   5.0.37-community-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE=‘+00:00‘ */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `Category`
--

DROP TABLE IF EXISTS `Category`;
CREATE TABLE `Category` (
  `id` bigint(20) NOT NULL auto_increment,
  `pageId` int(11) default NULL,
  `name` varchar(255) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `pageId` (`pageId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `Category`
--

LOCK TABLES `Category` WRITE;
/*!40000 ALTER TABLE `Category` DISABLE KEYS */;
/*!40000 ALTER TABLE `Category` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `category_inlinks`
--

DROP TABLE IF EXISTS `category_inlinks`;
CREATE TABLE `category_inlinks` (
  `id` bigint(20) NOT NULL,
  `inLinks` int(11) default NULL,
  KEY `FK3F433773E46A97CC` (`id`),
  KEY `FK3F433773BB482769` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `category_inlinks`
--

LOCK TABLES `category_inlinks` WRITE;
/*!40000 ALTER TABLE `category_inlinks` DISABLE KEYS */;
/*!40000 ALTER TABLE `category_inlinks` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `category_outlinks`
--

DROP TABLE IF EXISTS `category_outlinks`;
CREATE TABLE `category_outlinks` (
  `id` bigint(20) NOT NULL,
  `outLinks` int(11) default NULL,
  KEY `FK9885334CE46A97CC` (`id`),
  KEY `FK9885334CBB482769` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `category_outlinks`
--

LOCK TABLES `category_outlinks` WRITE;
/*!40000 ALTER TABLE `category_outlinks` DISABLE KEYS */;
/*!40000 ALTER TABLE `category_outlinks` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `category_pages`
--

DROP TABLE IF EXISTS `category_pages`;
CREATE TABLE `category_pages` (
  `id` bigint(20) NOT NULL,
  `pages` int(11) default NULL,
  KEY `FK71E8D943E46A97CC` (`id`),
  KEY `FK71E8D943BB482769` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `category_pages`
--

LOCK TABLES `category_pages` WRITE;
/*!40000 ALTER TABLE `category_pages` DISABLE KEYS */;
/*!40000 ALTER TABLE `category_pages` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `MetaData`
--

DROP TABLE IF EXISTS `MetaData`;
CREATE TABLE `MetaData` (
  `id` bigint(20) NOT NULL auto_increment,
  `language` varchar(255) default NULL,
  `disambiguationCategory` varchar(255) default NULL,
  `mainCategory` varchar(255) default NULL,
  `nrofPages` bigint(20) default NULL,
  `nrofRedirects` bigint(20) default NULL,
  `nrofDisambiguationPages` bigint(20) default NULL,
  `nrofCategories` bigint(20) default NULL,
  `version` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `MetaData`
--

LOCK TABLES `MetaData` WRITE;
/*!40000 ALTER TABLE `MetaData` DISABLE KEYS */;
/*!40000 ALTER TABLE `MetaData` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `Page`
--

DROP TABLE IF EXISTS `Page`;
CREATE TABLE `Page` (
  `id` bigint(20) NOT NULL auto_increment,
  `pageId` int(11) default NULL,
  `name` varchar(255) default NULL,
  `text` longtext,
  `isDisambiguation` bit(1) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `pageId` (`pageId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `Page`
--

LOCK TABLES `Page` WRITE;
/*!40000 ALTER TABLE `Page` DISABLE KEYS */;
/*!40000 ALTER TABLE `Page` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `page_categories`
--

DROP TABLE IF EXISTS `page_categories`;
CREATE TABLE `page_categories` (
  `id` bigint(20) NOT NULL,
  `pages` int(11) default NULL,
  KEY `FK72FB59CC1E350EDD` (`id`),
  KEY `FK72FB59CC75DCF4FA` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `page_categories`
--

LOCK TABLES `page_categories` WRITE;
/*!40000 ALTER TABLE `page_categories` DISABLE KEYS */;
/*!40000 ALTER TABLE `page_categories` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `page_inlinks`
--

DROP TABLE IF EXISTS `page_inlinks`;
CREATE TABLE `page_inlinks` (
  `id` bigint(20) NOT NULL,
  `inLinks` int(11) default NULL,
  KEY `FK91C2BC041E350EDD` (`id`),
  KEY `FK91C2BC0475DCF4FA` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `page_inlinks`
--

LOCK TABLES `page_inlinks` WRITE;
/*!40000 ALTER TABLE `page_inlinks` DISABLE KEYS */;
/*!40000 ALTER TABLE `page_inlinks` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `page_outlinks`
--

DROP TABLE IF EXISTS `page_outlinks`;
CREATE TABLE `page_outlinks` (
  `id` bigint(20) NOT NULL,
  `outLinks` int(11) default NULL,
  KEY `FK95F640DB1E350EDD` (`id`),
  KEY `FK95F640DB75DCF4FA` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `page_outlinks`
--

LOCK TABLES `page_outlinks` WRITE;
/*!40000 ALTER TABLE `page_outlinks` DISABLE KEYS */;
/*!40000 ALTER TABLE `page_outlinks` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `page_redirects`
--

DROP TABLE IF EXISTS `page_redirects`;
CREATE TABLE `page_redirects` (
  `id` bigint(20) NOT NULL,
  `redirects` varchar(255) default NULL,
  KEY `FK1484BA671E350EDD` (`id`),
  KEY `FK1484BA6775DCF4FA` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `page_redirects`
--

LOCK TABLES `page_redirects` WRITE;
/*!40000 ALTER TABLE `page_redirects` DISABLE KEYS */;
/*!40000 ALTER TABLE `page_redirects` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `PageMapLine`
--

DROP TABLE IF EXISTS `PageMapLine`;
CREATE TABLE `PageMapLine` (
  `id` bigint(20) NOT NULL auto_increment,
  `name` varchar(255) default NULL,
  `pageID` int(11) default NULL,
  `stem` varchar(255) default NULL,
  `lemma` varchar(255) default NULL,
  PRIMARY KEY  (`id`),
  KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `PageMapLine`
--

LOCK TABLES `PageMapLine` WRITE;
/*!40000 ALTER TABLE `PageMapLine` DISABLE KEYS */;
/*!40000 ALTER TABLE `PageMapLine` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2008-02-11 12:33:30

JWPL工具處理維基百科wikipedia數據用於NLP