Accessible digital text analysis for classical Chinese

Paper presented at Future Philologies: Digital Directions in Ancient World Text, Institute for the Study of the Ancient World, New York University, April 20 2018.

Abstract

Despite a growing interest in digital humanities as a field of study and focus of specialization, significant barriers to the adoption of digital techniques remain within research and teaching in practice in many humanities disciplines. While an increasing number of humanities scholars have demonstrated willingness to invest time and effort in cultivating necessary technical skills, in practice many more are prevented from experimenting with digital methods due to perceived high barriers to entry. One approach to accelerate the adoption of digital techniques is to attempt to reduce the prerequisite technical skills required to apply techniques to research data in practice through the creation of platforms and tools able to bridge technical gaps for some of the most powerful and generally applicable use cases.

With this goal in mind, this talk introduces a suite of browser-based text analysis tools designed for pre-modern Chinese materials and intended to easily integrate into scholarly workflows, including in particular those common in Chinese literature, philosophy, and history departments. Major goals include accessibility of the tools themselves, as well as transparency of their working and ability to introspect the mechanisms underwriting the results and visualizations produced. By enabling rapid exploration of arbitrarily chosen textual materials while also providing insight into the algorithms used, these tools have pedagogical applications in addition to research uses, and are already in use teaching at several institutions.

Posted in Chinese, Digital Humanities, Talks and conference papers | Comments Off

Cyberinfrastructure for historical China studies

It was a pleasure to host on behalf of the Chinese Text Project (ctext.org), together with Professor Peter Bol on behalf of the China Biographical Database (CBDB), the International conference on cyberinfrastructure for historical China studies, held at the Harvard China Center in Shanghai, March 14-16, 2018.

The full program and additional information is available on ctext.org; the slides I used during the conference are also available for download below:

Cyberinfrastructure
[English]

中国哲学书电子化计划 / Chinese Text Project
[English] [Chinese]

文本分析工具 / Text Tools
[English] [Chinese]

线上数据库的可扩展数据分享 / Scalable data sharing for online database systems
[English] [Chinese]

Posted in Chinese, Digital Humanities, Talks and conference papers | Comments Off

ctext.org入门教程

此教程将会从使用者的角度简单介绍中国哲学书电子化计划资料库和数位图书馆中的主要操作方法,并举具体的操作实例以便示范系统的主要功能。

教程网址:
英文:https://dsturgeon.net/ctext
中文:https://dsturgeon.net/ctext-zhs
日文:https://dsturgeon.net/ctext-ja

首次使用前的设置

  • 建立帐户:在左手栏目中,往下卷动并点击“登入”,然后在“若尚未建立本站的帐户”的表格中输入您的资料,再点“建立帐户”。
  • 确认电脑字体是否已安装:在左上角点“本站介绍”,再点“字体试验页”。

书目查询

  • 使用左手栏目中的“书名检索”功能。
  • 检索结果中,“”图标表示该文献的内容可以直接连接到对应的扫描影印资料。
  • 此外,检索结果中可能会看到以下图标:
    文字版存放于原典资料库(使用者不能直接编辑)。
    可以编辑的文字版,此文字版本是人工输入的而不是OCR结果。
    可以编辑的文字版,此文字版本是OCR结果。
    版本的影印扫描资料。
  • 习题:
    • 找出《资暇集》的电子全文。
    • 在原典数据库中找出先秦两汉时代的一部经典(如:《庄子》、《荀子》等)。

全文检索

  • 首先找出并打开想要检索的文字版翻译(章节或是卷),点击 左手栏目下部的“检索” 框。
  • 习题:
    • 找出《论语》中带有孔子所说“君子不器”的段落。
    • 找出《庄子》中所有有提到“道”的段落。
  • 当你在文本资料库中检索本文得出多个结果时,可以点击页面右上部的“显示统计”链接,打开检索结果的互动摘要。

在主要的扫描资料中找出文本

  • 在ctext中,可以通过影印底本连结来检索影印资料。当文字版中带有影印连结时,书名检索结果中会显示“”的图标。
  • 当文本跟扫描档案有链接时,点击左方文本中任何一个段落的“”图标,打开对应的扫面版本。
  • 当你要在扫面文本中检索特定的单词或是片语,在文字版中检索对应的单词或是片语,点击左方结果中的“”图标。
  • 文字版中出现的错误(特别在OCR得出的文字版中)表示片语越长越不一致。如遇到这个情况,试图检索短一点的片语或是想要检索的文本附近出现的单词。
  • 习题:
    • 找出有扫描版链接的文本,检索并检视扫面版中的结果。
    • 在OCR得出的文字版中重复一次。
    • 你也可以从“图书馆”中找出扫描文本,这个检索跟你检索文字版链接会有完全一致的结果。
    • 或者,你也可以使用链接来读出每一页的扫描本。

找出与文本片语相似的文本

可以在先秦两汉以及类书中的文本资料库使用

  • 找出文本片语,点击“”图标,打开相似段落的概要。
  • 在结果一栏中,点击标题附近的“”图标,显示每一个结果和它出现的文脉。
  • 习题:
    • 找出与《庄子》中“庖丁解牛”故事相似的段落。

找出两段特定文本中的相似段落

可以在先秦两汉以及类书中的文本资料库使用

  • 点击左边一栏下部的“高级检索”链接。
  • 在“1. 检索范围”部分中,选择第一个种类,文本或是你想要检索的文本单位。例如,在《庄子》中检索时,你可以选择“先秦和汉”,再选“道家”,再选“庄子” (第四个框中保持“[全部]”)。
  • 在“3. 检索条件”部分中,打钩“相似段落搜索”下面的框,然后以同样的方法设定本文范围(范围亦可为文本类型、文本整体或文本部分)。
  • 点击“Search”。结果会显示所有包含相似段落的文本。
  • 习题:
    • 找出《论语》和“道家”类文献中所有相似段落。
    • 当你有结果时,点击“显示统计”的链接。
    • 做同样的检索,这一次逆转“检索范围” 和“检索条件”,然后使用“显示统计”。

以索引、引得编号检索

适用于有索引、引得讯息的文本

  • 首先打开文本的页面。页面右手方有一个搜索框,对应着每一种支持文本的索引、引得编号。
  • 习题:
    • 在Eric Hutton的这篇论文中,作者使用了ICS系列和哈弗燕京系列中的索引、引得编号来表示文本的引用处,因而没有直接引用中文文本,例如:


      使用索引、引得编号来找出上面所出《荀子》中对应脚注17的作者翻译和相关资料的原档中文。

找出文本中对应的索引、引得编号

适用于有索引、引得讯息的文本

  • 在带有索引、引得数据的段落左手边点击“”图标。
  • 在段落上移动鼠标会显示所有对应到鼠标位置的索引、引得编号。
  • 如欲显示与段落中特定一段的索引、引得编号时,使用鼠标点击并将其移动到加亮为绿色的文本。所有与加亮文本有交叉的索引、引得编号会随之显示出来。
  • 习题:
    • 接着以上习题,找出对应于《荀子》中“人之性恶,其善者伪也。”这一段的索引、引得编号。

文本、翻译平行检视

对应带有英文翻译的文本。

  • 一般来说,当检视带有翻译的文本时,紧接着中文的一个段落(可能很长),会显示英语段落。如想让文本和翻译更接近地显示(通常是一句一句),点击文本片语左方的“”图标。使用者也可以移动鼠标指针到中文文本来显示字典信息。
  • 如所检视的段落较长时,使用者可以先检索中文句子,再点击“”图标如上,直接跳到对应特定中文文本的翻译。
  • 习题:
    • 使用《庄子》的文本来做实验。
    • 用这个功能检视James Legge如何在同一个文本中翻译“每至于族,吾见其难为,怵然为戒,视为止,行为迟”。

显示注释

对应于部分文本,例如《论语》、《孟子》、《墨子》、《道德经》等

  • 点击文本左方的“”图标。请注意,注释本身也是独立的文本,所以你可以点所显示的注释中的链接转到注释文本。
  • 习题:
    • 使用《论语》、《孟子》、《墨子》或是《道德经》做实验。

找出或输入罕见、异体字

  • 打开网站中“字典”的部分。
  • 根据所欲输入的字的情况可用以可以选择:
    • 直接输入(打字)
    • 结构查询:请参阅字典主页上的简要,
    • 部首查询:先选择部首,然后按照附加笔画查看。你可以通过点击“n strokes”标记来加大显示中的文字。
  • 习题:
    • 䊫, 𥼺, 𧤴, …:在ctext.org的字典中检索这些字(要使用上述说明的方法,不要直接从这个页面复制粘贴)。
  • 小贴士:如果两种组成部分都不容易输入的话,你可以输入包含其成分的任何其他字,通过分解,你可以找出成分,然后可以找出包含有那个特定成分的其他字。
  • ctext上的某些文本中有统一码中不存在的汉字。这些汉字目前只能通过成分来检索。
    • 你可以为了在ctext中使用,复制和粘贴在统一码中不存在的汉字。当统一码中不存在的汉字被复制时,将会变成“ctext:nnnn”识别符号(例如,ctext:1591)。在其他软件中粘贴这类字时(例如,在Word等软体),会粘贴识别符号,而不是字或是图像。
    • 然而,您可以在ctext中点击字体的右方并选择“复制图像”来复制字的图像。这个可以粘贴在Word文档(例如,通过参照“ctext:nnnn”识别符号或是提供网站链接)
    • 例子:ctext:4543 ctext:8668 ctext:3000 ctext:335

文本编辑

最有效编辑具有扫描版本的文本方式是通过简单修改功能。请参阅以下步骤:

  • 找出扫描版中出现传写错误的扫描页面。
  • 点击“简单修改模式”链接。
  • 系统会显示可直接编辑文字内容的输入方块。一般来说,每一行文字对应着扫描图像中的每一栏文字。
  • 细心修正文本保持与扫描版一致,结束后点击“保存编辑”。
  • 如果需要输入空格,请务必使用全角中文空格,而不是英文的半角空格。
  • 习题:
    • 选择一件透过OCR打造的文本资料,纠正其错误。
  • 详细纪录文本中每一次的修改并提供换回到更早版本的方法,是任何一种维基系统的基础–即所谓的“版本控制”。当您保存了修改之后:
    • 点击“文字版” 链接来打开您修改的文本全文
    • 往上卷动,点击“查看历史”来显示最近的历史纪录,您最近的修改会显示在最上边。
    • 每一行代表着一次修改之后的文本状态。可以通过在表的左方选择两种单选按钮,并点击“显示相差”来比较文本在两个时刻的状态。默认选择会比较文本当前状态和最新修改前的版本。点击“显示相差”来视觉化您刚刚做过的修改。

安装和使用插件

插件可用以扩展让网站的使用介面来支持新的功能。最常用的实例包括下载文本资料,连接到第三方提供的字典、工具等。为了使用插件,您必须先安装插件到您的帐户中(每一件插件只需做一次)。安装步骤如下:

  • 打开“本站介绍” > “工具” > “插件”。
  • 找出您想要安装的插件,点击“安装”。
  • 在确认页面中再点击“安装”。

安装插件之后,当您打开任何在ctext.org支持的对象时(例如, “book” 或是 “chapter”插件对应的是文本章节,“character”和“word”类插件对应的是字典中的汉字或中文单词),对应的链接会显示在屏幕上方附近的一栏中。
习题:

  • 安装“全文输出”插件并使用它输出文本的一章内容。
  • 安装“Frequencies”插件并使用它检视文本章节中出现的汉字的频率。
  • 安装任何一个带有“character” 或是“word”类的插件,在字典中找一个字,使用插件进入外部字典。

进阶主题

以下将介绍比较进阶的主题,这一些需要额外的努力以及(或是)超过这个教程范围的附加专业技能。

创造新的插件

插件是为了把ctext.org的使用介面和外部资料(通常是其他网站)相链接的XML编码。用户可以通过自己的ctext.org帐户来修改已存在的插件编码来创造新的插件。如要检视或修改当前所安装插件的内容,点击左边栏目中的“个人设定”,然后点击“直接修改个人插件XML档案”链接。

您可以通过复制“<Plugin>…</Plugin>”代码中的编码,以及修改复制内容来创造新的插件。您需要从新的插件中移除“”代码,不然,所输入的内容将来会被旧插件的新版自动取代。您也可以创造独立的XML文档(参阅多数已有的例子),存放到您的服务器,然后安装到您的ctext.org帐户。

如果您创建的新插件或是代码不被ctext介面接受的话,您可以使用W3C Markup Validator来确认您的插件文档是否有效。一个有效的插件会有绿色的字体写上“This document was successfully checked as CTPPlugin!”,看起来是这样的页面

程序存取

为了文本采矿和数字人文研究,网站中的文本资料可以直接通过Python等程序语言来存取。这需要一些额外的设置和时间来实行(特别对于没有程序经验的用户),不过网路上也有供详细的介绍

程序存取是通过ctext.org的应用程式介面(API)来实现的,您可以通过任何能够发送HTTP请求的程式语言或环境实行。本网特别推荐Python,因为您可以通过已有的ctext Python module使用API,这样可以降低程式开发上所需的时间。除了API的使用说明以外,您可以参考包括具体实例的API函数列单

Creative Commons License
Posted in Uncategorized | Comments Off

ctext.org入門教程

此教程將會從使用者的角度簡單介紹中國哲學書電子化計劃資料庫和數位圖書館中的主要操作方法,並舉具體的操作實例以便示範系統的主要功能。

教程網址:
英文:https://dsturgeon.net/ctext
中文:https://dsturgeon.net/ctext-zh
日文:https://dsturgeon.net/ctext-ja

首次使用前的設置

  • 建立帳戶:在左手欄目中,往下捲動並點擊“登入”,然後在“若尚未建立本站的帳戶”的表格中輸入您的資料,再點“建立帳戶”。
  • 確認電腦字體是否已安裝:在左上角點“本站介紹”,再點“字體試驗頁”。

書目查詢

  • 使用左手欄目中的“書名檢索”功能。
  • 檢索結果中,“”圖標表示該文獻的內容可以直接連接到對應的掃描影印資料。
  • 此外,檢索結果中可能會看到以下圖標:
    文字版存放於原典資料庫(使用者不能直接編輯)。
    可以編輯的文字版,此文字版本是人工輸入的而不是OCR結果。
    可以編輯的文字版,此文字版本是OCR結果。
    版本的影印掃描資料。
  • 習題:
    • 找出《資暇集》的電子全文。
    • 在原典數據庫中找出先秦兩漢時代的一部經典(如:《莊子》、《荀子》等)。

全文檢索

  • 首先找出并打開想要檢索的文字版翻譯(章節或是卷),點擊 左手欄目下部的“檢索” 框。
  • 習題:
    • 找出《論語》中帶有孔子所說“君子不器”的段落。
    • 找出《莊子》中所有有提到“道”的段落。
  • 當你在文本資料庫中檢索本文得出多個結果時,可以點擊頁面右上部的“顯示統計”鏈接,打開檢索結果的互動摘要。

在主要的掃描資料中找出文本

  • 在ctext中,可以通過影印底本連結來檢索影印資料。當文字版中帶有影印連結時,書名檢索結果中會顯示“”的圖標。
  • 當文本跟掃描檔案有鏈接時,點擊左方文本中任何一個段落的“”圖標,打開對應的掃面版本。
  • 當你要在掃面文本中檢索特定的單詞或是片語,在文字版中檢索對應的單詞或是片語,點擊左方結果中的“”圖標。
  • 文字版中出現的錯誤(特別在OCR得出的文字版中)表示片語越長越不一致。如遇到這個情況,試圖檢索短一點的片語或是想要檢索的文本附近出現的單詞。
  • 習題:
    • 找出有掃描版鏈接的文本,檢索并檢視掃面版中的結果。
    • 在OCR得出的文字版中重複一次。
    • 你也可以從“圖書館”中找出掃描文本,這個檢索跟你檢索文字版鏈接會有完全一致的結果。
    • 或者,你也可以使用鏈接來讀出每一頁的掃描本。

找出與文本片語相似的文本

可以在先秦兩漢以及類書中的文本資料庫使用

  • 找出文本片語,點擊“”圖標,打開相似段落的概要。
  • 在結果一欄中,點擊標題附近的“”圖標,顯示每一個結果和它出現的文脈。
  • 習題:
    • 找出與《莊子》中“庖丁解牛”故事相似的段落。

找出兩段特定文本中的相似段落

可以在先秦兩漢以及類書中的文本資料庫使用

  • 點擊左邊一欄下部的“高級檢索”鏈接。
  • 在“1. 檢索範圍”部分中,選擇第一個種類,文本或是你想要檢索的文本單位。例如,在《莊子》中檢索時,你可以選擇“先秦和漢”,再選“道家”,再選“莊子” (第四個框中保持“[全部]”)。
  • 在“3. 檢索條件”部分中,打鉤“相似段落搜索”下面的框,然後以同樣的方法設定本文範圍(範圍亦可為文本類型、文本整體或文本部分)。
  • 點擊“Search”。結果會顯示所有包含相似段落的文本。
  • 習題:
    • 找出《論語》和“道家”類文獻中所有相似段落。
    • 當你有結果時,點擊“顯示統計”的鏈接。
    • 做同樣的檢索,這一次逆轉“檢索範圍” 和“檢索條件”,然後使用“顯示統計”。

以索引、引得編號檢索

適用於有索引、引得訊息的文本

  • 首先打開文本的頁面。頁面右手方有一個搜索框,對應著每一種支持文本的索引、引得編號。
  • 習題:
    • 在Eric Hutton的這篇論文中,作者使用了ICS系列和哈弗燕京系列中的索引、引得編號來表示文本的引用處,因而沒有直接引用中文文本,例如:


      使用索引、引得編號來找出上面所出《荀子》中對應腳註17的作者翻譯和相關資料的原檔中文。

找出文本中對應的索引、引得編號

適用於有索引、引得訊息的文本

  • 在帶有索引、引得數據的段落左手邊點擊“”圖標。
  • 在段落上移動鼠標會顯示所有對應到鼠標位置的索引、引得編號。
  • 如欲顯示與段落中特定一段的索引、引得編號時,使用鼠標點擊并將其移動到加亮為綠色的文本。所有與加亮文本有交叉的索引、引得編號會隨之顯示出來。
  • 習題:
    • 接著以上習題,找出對應於《荀子》中“人之性惡,其善者偽也。”這一段的索引、引得編號。

文本、翻譯平行檢視

對應帶有英文翻譯的文本。

  • 一般來說,當檢視帶有翻譯的文本時,緊接著中文的一個段落(可能很長),會顯示英語段落。如想讓文本和翻譯更接近地顯示(通常是一句一句),點擊文本片語左方的“”圖標。使用者也可以移動鼠標指針到中文文本來顯示字典信息。
  • 如所檢視的段落較長時,使用者可以先檢索中文句子,再點擊“”圖標如上,直接跳到對應特定中文文本的翻譯。
  • 習題:
    • 使用《莊子》的文本來做實驗。
    • 用這個功能檢視James Legge如何在同一個文本中翻譯“每至於族,吾見其難為,怵然為戒,視為止,行為遲”。

顯示注釋

對應於部分文本,例如《論語》、《孟子》、《墨子》、《道德經》等

  • 點擊文本左方的“”圖標。請注意,注釋本身也是獨立的文本,所以你可以點所顯示的注釋中的鏈接轉到注釋文本。
  • 習題:
    • 使用《論語》、《孟子》、《墨子》或是《道德經》做實驗。

找出或輸入罕見、異體字

  • 打開網站中“字典”的部分。
  • 根據所欲輸入的字的情況可用以可以選擇:
    • 直接輸入(打字)
    • 結構查詢:請參閱字典主頁上的簡要,
    • 部首查詢:先選擇部首,然後按照附加筆畫查看。你可以通過點擊“n strokes”標記來加大顯示中的文字。
  • 習題:
    • 䊫, 𥼺, 𧤴, …:在ctext.org的字典中檢索這些字(要使用上述說明的方法,不要直接從這個頁面複製粘貼)。
  • 小貼士:如果兩種組成部分都不容易輸入的話,你可以輸入包含其成分的任何其他字,通過分解,你可以找出成分,然後可以找出包含有那個特定成分的其他字。
  • ctext上的某些文本中有統一碼中不存在的漢字。這些漢字目前只能通過成分來檢索。
    • 你可以為了在ctext中使用,複製和粘貼在統一碼中不存在的漢字。當統一碼中不存在的漢字被複製時,將會變成“ctext:nnnn”識別符號(例如,ctext:1591)。在其他軟件中粘貼這類字時(例如,在Word等軟體),會粘貼識別符號,而不是字或是圖像。
    • 然而,您可以在ctext中點擊字體的右方並選擇“複製圖像”來複製字的圖像。這個可以粘貼在Word文檔(例如,通過參照“ctext:nnnn”識別符號或是提供網站鏈接)
    • 例子:ctext:4543 ctext:8668 ctext:3000 ctext:335

文本編輯

最有效編輯具有掃描版本的文本方式是通過簡單修改功能。請參閱以下步驟:

  • 找出掃描版中出現傳寫錯誤的掃描頁面。
  • 點擊“簡單修改模式”鏈接。
  • 系統會顯示可直接編輯文字內容的輸入方塊。一般來說,每一行文字對應著掃描圖像中的每一欄文字。
  • 細心修正文本保持與掃描版一致,結束後點擊“保存編輯”。
  • 如果需要輸入空格,請務必使用全角中文空格,而不是英文的半角空格。
  • 習題:
    • 選擇一件透過OCR打造的文本資料,糾正其錯誤。
  • 詳細紀錄文本中每一次的修改並提供換回到更早版本的方法,是任何一種維基系統的基礎–即所謂的“版本控制”。當您保存了修改之後:
    • 點擊“文字版” 鏈接來打開您修改的文本全文
    • 往上捲動,點擊“查看歷史”來顯示最近的歷史紀錄,您最近的修改會顯示在最上邊。
    • 每一行代表著一次修改之後的文本狀態。可以通過在表的左方選擇兩種單選按鈕,並點擊“顯示相差”來比較文本在兩個時刻的狀態。默認選擇會比較文本當前狀態和最新修改前的版本。點擊“顯示相差”來視覺化您剛剛做過的修改。

安裝和使用插件

插件可用以擴展讓網站的使用介面來支持新的功能。最常用的實例包括下載文本資料,連接到第三方提供的字典、工具等。為了使用插件,您必須先安裝插件到您的帳戶中(每一件插件只需做一次)。安裝步驟如下:

  • 打開“本站介紹” > “工具” > “插件”。
  • 找出您想要安裝的插件,點擊“安裝”。
  • 在確認頁面中再點擊“安裝”。

安裝插件之後,當您打開任何在ctext.org支持的對象時(例如, “book” 或是 “chapter”插件對應的是文本章節,“character”和“word”類插件對應的是字典中的漢字或中文單詞),對應的鏈接會顯示在屏幕上方附近的一欄中。
習題:

  • 安裝“全文輸出”插件並使用它輸出文本的一章內容。
  • 安裝“Frequencies”插件並使用它檢視文本章節中出現的漢字的頻率。
  • 安裝任何一個帶有“character” 或是“word”類的插件,在字典中找一個字,使用插件進入外部字典。

進階主題

以下將介紹比較進階的主題,這一些需要額外的努力以及(或是)超過這個教程範圍的附加專業技能。

創造新的插件

插件是為了把ctext.org的使用介面和外部資料(通常是其他網站)相鏈接的XML編碼。用戶可以通過自己的ctext.org帳戶來修改已存在的插件編碼來創造新的插件。如要檢視或修改當前所安裝插件的內容,點擊左邊欄目中的“個人設定”,然後點擊“直接修改個人插件XML檔案”鏈接。

您可以通過複製“<Plugin>…</Plugin>”代碼中的編碼,以及修改複製內容來創造新的插件。您需要從新的插件中移除“”代碼,不然,所輸入的內容將來會被舊插件的新版自動取代。您也可以創造獨立的XML文檔(參閱多數已有的例子),存放到您的服務器,然後安裝到您的ctext.org帳戶。

如果您創建的新插件或是代碼不被ctext介面接受的話,您可以使用W3C Markup Validator來確認您的插件文檔是否有效。一個有效的插件會有綠色的字體寫上“This document was successfully checked as CTPPlugin!”,看起來是這樣的頁面

程序存取

為了文本採礦和數字人文研究,網站中的文本資料可以直接通過Python等程序語言來存取。這需要一些額外的設置和時間來實行(特別對於沒有程序經驗的用戶),不過網路上也有供詳細的介紹

程序存取是通過ctext.org的應用程式介面(API)來實現的,您可以通過任何能夠發送HTTP請求的程式語言或環境實行。本網特別推薦Python,因為您可以通過已有的ctext Python module使用API,這樣可以降低程式開發上所需的時間。除了API的使用說明以外,您可以參考包括具體實例的API函數列單

Creative Commons License
Posted in Chinese, Digital Humanities | Comments Off

中國古代文獻的數位研究工具工作坊

活動時間:2017年12月21日(四) 13:00–17:00
活動地點:國立臺灣大學 集思會議中心尼采廳 台北市羅斯福路四段85號B1
活動說明:本工作坊為實作工作坊,請與會者攜帶個人筆記型電腦參加,以便於更快熟悉相關研究工具
報名網址:https://goo.gl/KBPMGG​ (名額有限,報名從速)​
主辦單位:臺灣大學數位人文研究中心 哈佛大學費正清中國研究中心
協辦單位:臺灣大學圖書館
​聯絡資訊​:臺灣大學數位人文研究中心 胡博士 TEL:02-33669847

工作坊摘要:
  隨著數位技術的日益增強,數位人文工具提供了研究者許多進行古代文獻研究與分析的新方法。這些工具不但具備探索文獻的技術,也讓研究者獲得更多以往未曾發現的文獻脈絡與相互關連,甚至透過電腦收集的資料來反駁或是證明特定的假設。

  但是,使用這些分析方法時,特別是在獲取數位文獻和能夠進行分析的數位工具方面,往往面臨著技術性的挑戰。在本次的實作工作坊中,主講人將詳細介紹如何透過研究工具以減少這些技術性的障礙。

  工作坊的第一部分將介紹全球最大規模的中國古籍文獻全文資料庫—「中國哲學書電子化計劃」。此系統不但提供全文檢索等較常用的功能外,也能使用更進階的方法來達到使用者自定的研究目的,並讓使用者能夠直接參與新文獻的數位化。

  第二部分介紹可用來分析「中國哲學書電子化計劃」中或其它來源文獻的創新分析研究工具。這些工具包括重建資料分析工具、正規表達式的全文檢索,以及各種分析結果的視覺化呈現技術。

Posted in Chinese, Digital Humanities | Comments Off

ctext.orgへの実践的ガイド

本チュートリアルは、 データベース・デジタルライブラリーChinese Text Project中国哲学書電子化計画)における一般的なタスク機能について、ユーザーの目線からまとめたものです。皆さんに参考となりそうなシステムの主要機能に関するタスク事例をご紹介します。

本チュートリアルのオンライン版はこちら:
英語:https://dsturgeon.net/ctext
中国語:https://dsturgeon.net/ctext-zh
日本語:https://dsturgeon.net/ctext-ja

初期設定

  • アカウントの登録:左側のペインを一番下までスクロールダウンしてください。「Log in」をクリックし、「If you do not have an account…」セクションにおいて必要事項を記入してください。
  • フォントサポートを確認:左上の隅に見える「About the site」の下にある「Font test page」をクリックしてください。

テキストを探す

  • 左側のペインにある「Title search」機能をお使いください。
  • 題目検索結果において、「」アイコンが表示されているテキストは、スキャンした資料とリンクしています。
  • 題目検索結果において使用される主なアイコン:
    テキストデータベースにおける複写版(ユーザーは編集不可)
    ユーザーが編集可能な複写版、OCRは使用されていません
    ユーザーが編集可能な複写版、OCRに対応しています
    特定の編集されたテキストのスキャン版
  • 実践:
    • 『資暇集』の複写版を検索してください
    • テキストデータベースにて、先秦もしくは漢のテキストを検索してください。

全文検索

  • まず、検索したいテキスト(もしくは章や巻)を検索し、開いてください。その後、左側のペイン下部にある「Search」というボックスを使用してください。
  • 実践:
    • 『論語』にて、孔子が「君子不器」と述べている節を検索してください。
    • 『莊子』の中で、「道」について書かれている節すべてを検索してください。
  • テキストデータベースにて、テキストを検索している際、数多くの検索結果が出る事があります。その場合、右上に表示されている「Show statistics」というリンクを使用することで検索結果がどこで表れているのか、インタラクティブな概要を見ることができます。

主要なスキャン資料の中でテキストを特定する

  • ctextにおいて、スキャンしたテキストは、linked transcriptionsといった方法で検索することができます。仮に、複写版にリンクしたテキストがある場合、題目検索結果にて「」アイコンが表示されます。
  • スキャン版にリンクしているテキストの場合、如何なるテキスト段落の左側に表示されている「」アイコンをクリックすることで、該当のスキャン版テキストを開くことができます。
  • スキャンされたテキストにおいて、特定の単語や語句を検索するには、対応する複写版にてその単語や語句を検索し、検索結果左側に表示されている「」アイコンをクリックしてください。
  • 特にOCRを使用して作成されている複写版において、複写のエラーは、長い語句であるほど、マッチしないという事を表していることがあります。その際、単語より短い語句を検索するか、検索しているテキストの近くに表示されている単語を使用してください。
  • 実践:
    • スキャンのリンクがあるテキストを探し、スキャン版の中で検索し、結果を考察してください。
    • OCRのある複写版で試してください。
    • テキストは、スキャンしたテキストを所蔵しているウェブサイトの「Library」セクションからも検索できます。この作業は、リンクした複写を検索するときと全く同じ結果となります。
    • もしくは、提供されたリンクを使用して、スキャン版をページごとに検索する事も出来ます。

テキストの節と類似するテキストを検索する

テキストデータベースでは、先秦及び漢テキスト、類書の検索ができます。

  • テキストの一節を選んで、「」アイコンをクリックし、類似した部分の概要を表示することができます。
  • 検索結果において、表題付近にある「」アイコンをクリックすることで、どの文脈で出現しているのか表示されます。
  • 実践:
    • 古典言語資料で著名な『莊子』の「庖丁解牛」と類似している箇所を検索してください。

2つの特定テキストにおいて類似した箇所を検索する

テキストデータベースでは、先秦及び漢テキスト、類書の検索ができます。

  • 左側のペイン下部にある「Advanced search」リンクをクリックしてください。
  • 「1. Scope」と表示されているセクションにおいて、検索したい1つ目のカテゴリー、テキストもしくはテキストユニットを選んでください。例えば、『莊子』において、「Pre-Qin and Han」、「Daoism」、「Zhuangzi」を選んでください(4つ目のボックスは、「All」としてください)。
  • 「3. Search parameters」のセクションでは、「Parallel passage search」の下にあるボックスにチェックを入れてください。先程と同様の手順で、類似を検索したいカテゴリー、テキストもしくはテキストユニットを選択してください。
  • 「Search」をクリックしてください。検索結果では、すべての類似した節が表示されます。
  • 実践:
    • 『論語』及び「Daoism」カテゴリー内のテキストの間でどのような類似があるのか、検索してください。
    • 検索結果が出た後、「Show statistics」リンクをクリックしてみてください。
    • 次に、同様の検索をしてください。ただし、この場合、「Scope」と「Search parameters」を逆転し、その後、「Show statistics」を使用してみてください。

コンコルダンス番号を使用して、テキストを検索する

コンコルダンス情報を含むテキストに対応できます。

  • まず、複写したテキストのコンテンツを開いてください。ページの右側に、検索ボックスが表示され、テキストに対応した一致の数がそれぞれ表示されます。
  • 実践:
    • Eric Huttonのこの論文にて、著者はICSとハーバード燕京に使用されている一致の数をもとに、中国語のテキストを引用することなく、テキストの引用箇所を表示しています。例えば:


      ctext.orgにおけるコンコルダンス検索機能を使用することで、参考資料17にて、著者が訳し、引用した「荀子」の箇所と対応する原文の中国語を特定することができます。

テキストにおいてコンコルダンス番号を検索するには

コンコルダンス情報を含むテキストに対応できます。

  • コンコルダンスに対応している節において、左側に表示されている「」アイコンをクリックしてください。
  • マウスを表示された節内で動かすことによって、そのテキストの一部においてコンコルダンス列全てが表示されます。
  • 一定の節に関係するコンコルダンス列のみを表示させるのは、マウスをハイライトされているテキスト(緑色)まで動かしクリックしてください。ハイライトされたテキストを含むすべてのコンコルダンス列が表示されます。
  • 実践:
    • 前述の例に従って、「荀子」における「人之性惡,其善者偽也」と対応するコンコルダンス列を特定してください。

テキストと翻訳を並べて検証する

英語の翻訳があるテキストに対応しています

  • 通常、テキストの翻訳を見る際、1つの中国語の段落が表示され(恐らくかなり長い)、次に対応した英語の段落が表示されます。テキストと翻訳をより近くに表示することも可能です(一般的には、語句ごとに)。この作業をするためには、テキスト節の左側にある「」アイコンをクリックしてください。この機能は、マウスのカーソルが中国語のテキストに移動した際、辞書情報を表示することもできます。
  • 長い節では、特定の中国語テキストに対応する翻訳の箇所に直接移動することをお勧めします。その作業を行うには、中国語語句のテキストを検索し、前述通り、「」アイコンをクリックしてください。
  • 実践:
    • 『莊子』のテキストで実験をしてください。
    • James Leggeが如何に「每至於族,吾見其難為,怵然為戒,視為止,行為遲」を翻訳しているのか調べてください。

注釈を見る

『論語』、『孟子』、『墨子』、『道德經』などといった特定のテキストに対応します。

  • テキスト節の左側にある「」アイコンをクリックしてください。注釈は、独立したテキストですので、表示された注釈のリンクを使用することで、注釈のないテキストの代わりに、注釈のあるテキストを読むことができます。
  • 実践:
    • 『論語』、『孟子』、『墨子』、もしくは『道德經』で実験してみてください。

稀な、異形の文字を検索、入力する

  • ウェブサイトにおいて、「Dictionary」セクションを開いてください。
  • 文字によっては、以下の作業が必要となるでしょう:
    • 直接入力(文字をタイプしてください)
    • 構成要素の検索:辞書のメイン画面における概要を参照してください
    • 語根の検索:まず語根を選び、付加の画数を使用してください。「n strokes」ラベルをクリックすることで、表示される文字のサイズを大きくすることができます。
  • 実践:
    • 䊫、𥼺、𧤴… 、これらの文字をctext.orgで検索してください(このページからコピーやペーストをしないでください!)
  • ヒント:構成要素のいずれかを容易に入力する事が出来ない場合、代わりにその構成要素を含むどの文字でも結構ですので入力してください。このように分解することで構成要素を特定できます。次に、その構成要素を含む他の文字を検索してください。
  • ユニコードに存在しない異形の文字へのサポートはctext.orgに書き加えられています。これらは、構成要素を通じてのみ検索することができます。
    • ユニコードに掲載されていない文字は、ctextで使用する際に、コピーペーストすることができます。ユニコードで掲載されていない文字がコピーされた場合、「ctext:nnnn」認識子となります(例えば、ctext:1591)。これを他のソフトウェア(Microsoft Wordなど)にペーストした場合、文字やイメージではなく、この認識子が貼り付けられます。
    • ただし、ctextにて文字を右クリックし、「Copy image」を選択することで、文字のイメージをワード書類にコピーすることができます。その際、ctext.orgからイメージを取得しているという事を引用してください(例えば、「ctext:nnnn」認識子を引用するか、そのURLを提供してください)。
    • 例えば:ctext:4543 ctext:8668 ctext:3000 ctext:335

複写版を編集する

最も簡単な方法で、スキャン版にリンクしているテキストを正す為には、「Quick edit」機能を使用してください。以下の作業をしてください:

  • 複写エラーが出ているスキャンしたページを特定してください。
  • 「Quick edit」リンクをクリックしてください。
  • 編集可能なページの複写が表示されます。通常、複写の各列は、スキャンしたテキストの列に該当しています。
  • スキャン版を照らし合わせ、慎重に複写版を修正してください。「Save changes」をクリックして終了してください。
  • スペースが必要な場合、英語で使用する半角スペースではなく、中国語で使用する全角を入力してください。
  • 実践:
    • OCRによって自動的に作成された複写版を選び、エラーを修正してください。
  • 「バージョニング(versioning)」:各テキストにおけるすべての変更を記録し、変更前の状態に戻すことが可能なオプションを維持するという機能です。この機能は、如何なるwikiシステムにおいても基本的なオペレーションです。修正を保存した後:
    • 「View」リンクをクリックし、修正したテキスト複写を開いてください。
    • ページの一番上までスクロールし、「History」をクリックすることで、最新の変更リストを表示してください。最も新しい編集は一番上に表示されます。
    • 各列は、特定の編集が行われた複写の状況を表示しています。2つの編集を比較したい場合、図の左側にあるラジオボタンで2つの項目を選び、「Compare」をクリックしてください。デフォルトの設定では、常に最新の編集、およびその前に行われた編集を比較します。「Compare」をクリックし、あなたが先程行った編集の可視化を行ってください。

プラグインのインストールと使用方法

プラグインは、ウェブサイトのユーザーインターフェイスをカスタマイズ化し、付加機能をサポートすることができます。一般的に、テキストデーターのダウンロード、第三の文字字典への接続が事例として挙げられます。プラグインを使用するには、必ずあなたのアカウントにそのプラグインをインストールしておく必要があります(1つのプラグインにつき、1回のみの作業です)。プラグインをインストールするには:

  • 「About the site」をクリックし、その後、「Tools」、「Plugins」を開いてください。
  • 追加したいプラグインを特定し、「Install」をクリックしてください。
  • その後表示される確定画面にて、「Install」をクリックしてください。

一旦インストールが完了すると、ctext.orgにてサポートされているオブジェクトのいずれかを開いた場合(例えば、「book」もしくは「chapter」プラグインにおけるテキストの章、「character」や「word」類のプラグインにおける辞書内の文字)、スクリーン上部付近のバーにて、該当するリンクが表示されます。
実践:

  • 「Plain text」プラグインをインストールし、それを使ってテキストの章をエクスポートしてください。
  • 「Frequencies」プラグインをインストールし、それを使ってテキストの章における文字の頻度を見てください。
  • 「character」や「word」類におけるプラグインのいずれかをインストールしてください。それを使って、辞書の中で文字を探したり、外部辞書にアクセスしたりしてください。

上級トピック

以下では、より上級なトピックを紹介します。これらは、本チュートリアルの範囲を超えており、皆さんの更なる試み、(もしくは)高度な技術的スキルが必要とされます。

新しいプラグインを作成する

プラグインは、ctext.orgのユーザーインターフェイスを外部のリソース(多くはその他ウェブサイト)と接続する為のXML形式のプログラミング言語です。新しいプラグインは、ctext.orgのアカウントにおいて、既存のプラグインのコードを修正することで、直接作成することができます。どのようなプラグインがインストールされているのか確認するには、左側のペインにある「Settings」をクリックし、「editing your XML plugin file」リンクをクリックしてください。

新しいプラグインを作成するには、<Plugin>…</Plugin>タグの間にコードを重複し、その重複を編集することが必要です。その際、<Update>タグを新しいプラグインから除外する必要があります。そうしなければ、将来上書きされる可能性があります。もしくは、XMLファイルのスタンドアローンを作成し(多くの既存事例を参照してください)、それをあなたのサーバーにホストし、ctext.orgのアカウントにインストールしてください。

仮に、新しいプラグインに何らかの問題があったり、コードがctextインターフェイスに受けいれられなかった場合、W3C Markup Validatorを使用して、プラグインファイルが有効であるかどうか確認することができます。有効なプラグインファイルは、緑色で「This document was successfully checked as CTPPlugin!」と、このように表示されます。

プログラミングによるアクセス

ウェブサイトのテキスト資料は、プログラミング言語のパイソン(Python)などから直接アクセスすることができます。特にプログラミングの経験がない方にとって、この作業には、より多くのセットアップに加え時間が必要とされますが、これについての作業説明もオンラインで取得可能です。

プログラミングのアクセスは、ctext.org のApplication Programming Interface (API)によって促進されており、如何なる言語、もしくはHTTPリクエストを送信できる環境でしたら、作業可能です。この作業には、特段パイソンをお勧めします。といいますのも、ctext Python moduleが存在することで、少ない労力でAPIにアクセスできるからです。APIの一般的な付随資料に加え、全てのAPI機能に関する付随資料が入手可能で、各種実例が含まれています。

Creative Commons License
Posted in Chinese, Digital Humanities | Comments Off

ctext.org テキスト・ツールズ

本チュートリアルは、 データベース・デジタルライブラリーChinese Text Project中国哲学書電子化計画)における「テキスト・ツールズ」プラグインの主な機能について、参考となるタスクやケースを提示し、紹介します。

[本チュートリアルのオンライン版はこちら: https://dsturgeon.net/texttools-ja(日本語)、https://dsturgeon.net/texttools(英語)]

初期セットアップ

  • 過去にChinese Text Projectを使用した経験のない場合、チュートリアルの「ctext.orgへの実践的な説明」を参照し、ctext.orgにおけるアカウントの設定プラグインのインストールを行ってください。
  • あなたのアカウントを使用し、ログインしてください。
  • APIキーを取得している場合、ctext.orgアカウントの設定画面にて、APIキーを保存してください。もしくは、あなたの機関がctext.orgを購読している場合、大学の説明に従って、使用してください。その際、大学のローカルネットワークを使用するか、大学が提供しているVPNを経由してアクセスしてください。
  • 「テキスト・ツールズ」のプラグインをインストールしてください(インストールリンク)。この作業は1回のみです。
  • これらのステップを完了した後、ctext.orgにおけるテキストもしくはテキストの章を開くことで、テキスト・ツールズのプラグインにアクセスするリンクが現れます。

始めましょう

テキスト・ツールズプログラムは、数多くのページ(N-gramやRegexと呼ばれます)を含んでいます。これらのページは、各頁の上部にあるリンクを使うことで、切り替えることができます。各頁は、以下に記載するツールのどれかに該当しています。ただし、基本的な使用方法と各ツールのオプションを説明しているHelp pageは除きます。これらのツールは、テキスト分析及びデータの単純な可視化を可能とします。

テキスト分析のツールは、ctext.orgからAPI経由でテキストを直接読み取るか、他の場所からテキストをツールにコピーすることもできます。ctext.orgプラグインを使用してツールを開く場合、テキストは自動に読み込まれ、表示されます。追加のテキストをctextから読み込む場合、テキスト(もしくは章)のURNをテキスト・ツールズのウィンドウボックスにある「Fetch text by URN」という名のボックスにコピーし、Fetch(フェッチ)をクリックしてください。テキストが読み込まれた後、内容は、タイトルとともに表示されます。より多くのテキストを追加する場合、「Save/add another text」をクリックし、先ほどの手順を繰り返してください。現在選択されたテキストの一覧は、ウィンドウの上部に表示されます。

N-grams

N-gramは、一連の連続したnのテキスト項目(文字や単語)であり、nは固定小数点整数です(例えば、n=1, n=3など)。「テキスト項目」は、通常、用語(単語)や文字であり、特に、中国語において、文字は単語と比べ、より頻繁に使用されます。その背景には、中国のテキストを正確かつ自動的に、一連の独立した単語に分割することが難しいからです。例えば、「學而時習之不亦說乎」という一文には、以下3つの文字によるgramsが含まれています(すなわち、全く同じの3つの文字が特殊な順序で配置されています):「學而時」、「而時習」、「時習之」、「習之不」、「之不亦」、「不亦說」、「亦說乎」。

テキスト・ツールズのN-gramに関する機能は、n-gramsの文字という形式に基づいて、様々な中国テキストにおける単語の使用を概観することができます。

実践:
  • ctext から2〜3のテキストを選び、1 gramsの計算を試みてください。「Value of n」は、1で設定してください。よりよく傾向を可視化するため、Chartのリンクを使用し、生データの棒グラフを描いてください。この作業を正規化した場合と、しない場合、両方で試してください。
  • この作業を2及び3 gramsで繰り返してください。
  • 上記で選んだテキストの長さがおおよそ同じである場合、もう2つ、長さ、もしくはスタイルにおいて大いに異なるテキスト(『道德經』や『紅樓夢』)を選び、正規化する場合と、しない場合に分け、どのように結果が変化するのか、実演してみてください。

ワードクラウドは、もう一つの可視化の手段であり、その基になるデータは、ラベルの大きさがそれらの発生頻度に比例して異なるテキストによって描かれています(もしくは、より多い場合、それらの対数の頻度に比例します)。通常、ワードクラウドは、文字や単語を使用した単一のテキストや結合したコーパスによって構築されていますが、一般的に同じ原理は、自然とn-grams(および通常の表現)、複数のテキストにも広がるとされています。テキスト・ツールズでは、複数のテキストを可視化することで、データ内の一つ一つの確かなテキストを異なる色で表示します。これは、正規化においても同じ事がいえます:異なるテキストが長さによって正規化されていない場合、テキストが長くなることでラベルは自然と大きくなります。

実践:
  • 単一のテキストおよび2つもしくはより多くのテキストの為のワードクラウドを作成してください。ワードクラウドタブの設定の中にある「Use log scale」に基づいて実験してみてください。その作業によって、なぜ対数スケールがより頻繁にワードクラウドに使用されるか理解して頂けると思います。

テキストの相似性

本相似性ツール(Similarity tool)は、 n-gram shinglingを使用することで、テキストの再利用関係を認識し、可視化する事ができます。使用するには、まずは一つもしくは多くのテキストを読み込み、好みのオプションを選び、Runをクリックしてください。

本ツールによって、特定の部分的なテキスト間において共有されているn-gramsを認識することができます。全てのn-gramsを報告するのではなく(例えばN-gramツールの機能のような)、本ツールは、一つ以上の場所で繰り返されたn-gramsのみを報告し、一対の章において共有された全てのn-gramsを計算します。そのため、N-gramツールとは異なり(「最小カウントが1」の場合)、より大きいnの値が比較的少ない結果に現れるという現象が起きます。なぜなら、短いn-gramsは、比較的長いn-gramsに比べ、より複数の場所に出現することが多く、比較対象となっているアイテムの間において、再利用されたテキストの関係を表す傾向が大きいからです。

相似性ツールのアウトプット内には、2つのタブが有ります。一つは、「Matched text」と呼ばれるタブで、マッチしたn-gramsを表し、より大きい数の重複したn-gramsは、より明るい赤い色で表示されます。もう一つは、「Chapter summary」というタブで、全ての一対の章においてマッチするaggregateを集約しています。

実践:
  • 『論語』において、n=5という設定のうえで、相似性ツールを実行してください。
  • Constraintという機能で実験してみてください。まず、章のタイトルをクリックし、特定の章もしくは一対の章と平行している節のみを表示してください。
  • マッチするn-gramsを選択し、クリックしてください。この作業によって、異なる種類の制約を行い、マッチしたn-gramの場所を特定することができます。
  • テキストの再利用状況は、重み付きネットワークグラフとして可視化されます。あなた自身のn-gramに関する相似性の結果を表示するには、「Chapter summary」タブ内にある「Create graph」のリンクをクリックし、Drawをクリックしてください。
  • 本測定方法に基づいた場合、『論語』では、どの章において最もテキストの再利用関係が強いでしょうか?グラフから直接読み取ることが可能だと思いますが、Chapter summaryのタブに戻ることで、数値的を確認し、相似性に基づいて、図をソートすることができます。その作業をするには、まず、テキスト・ツールズ内の如何なる図においても、コラムのタイトルをクリックすることで、コラム内で図がソートされます(2回クリックすることで、ソートの順序を切り替えることができます)。
  • グラフに戻り(ページの上部にあるNetworkのリンクをクリックして切り替えてください)、グラフの辺には、認識した相似性に関する具体的な意味が定義されています。辺をダブルクリックすることで、相似性ツールを再度開くことができ、その中には、選択された辺の具体的な相似性がハイライトされています。本機能に基づいて、一番厚い、そして薄い辺を含むいくつかの辺を実証してください。
  • nの値を増加、現象して実験してみてください。どのように結果に影響しますか?
  • デフォルトでは、グラフには、全ての認識された相似性が辺に表されます。とりわけ比較的小さいnの値において、いくつかの関係はあまり重要ではなく、全ての一対したグラフのノードに辺が表示されることで、現象が複雑化され、有意義なパターンを覆い隠してしまいます。次に、グラフの単純化を試してみてください。「Skip edges with weight less than」にて、基準値(例えば、0.001)を設定することによって、再利用の数が比較的少ない辺を削除することができ、グラフを単純化することができます。この結果と、相似性ツールにおいて、nの値を増加した場合とで比較してみてください。この作業によって、辺の数を減らし、より自明な相似性を省くことができます。
  • 本相似性ツールは、複数のテキストにおいても使用することができます。仮に、複数のテキストが読み込まれ、グラフが作成された場合、異なる色によって章における相違したテキストを区別することができます。『荀子』および『莊子』においても試してみてください。これら2つのテキストは非常に異なりますが、互いに再利用の関係があります(この作業を実行するには数秒の時間がかかります。相似性ツールは、長いテキストほど、時間がかかります)。

正規表現(Regular expressions)

正規表現(通常regexと呼ばれます)とは、テキスト本文の中で検索されるパターンです。最も分かりやすいケースとしては、一つの正規表現は、検索する為の立て続けの文字です。しかし、このようなシンプルな考えを特別にデザインされた構文で補うことによって、より複雑な方法でデータ検索を行うことができます。

Regexツールは、一つもしくはより多くのテキストにおいて、一つもしくはそれ以上の正規表現を検索することができます。また、マッチしたテキストをリストアップし、テキスト、章もしくは段落ごとに結果を集約することができます。

実践:
  • もっともシンプルな正規表現は、文字列検索は一種の全文検索で、すなわち、特定の順序に基づいた文字にマッチする(唯一の)文字が整理されたリストです。『論語』で現れるようなテキストを検索してみてください(例えば、「君子」)。
  • 「Matched text」と「Summary」タブにおける内容を検証してください。
  • 2つ目の検索単語(例えば、「小人」)を検索し、もう一度regexを実行してください。
  • 今度は、同じ2つの正規表現に基づいた同様の検索を再度実行してください。ただし、「Group rows by」の部分をデフォルトのNoneからParagraphに変更してください。この作業を行う際、Summaryのタブは、『論語』の各段落に対応する1つの行を表示します。数字で表記された段落をクリック(してくださいこれらの数字は、自動的にテキストの最初から選択されています)。この作業により、行と対応する節がハイライトされます。

このような結果は、段落や章といったユニットによってグループ化された場合、相関的です。仮に、2つの用語が共に同じ段落(もしくは章)で現れた場合、両者には何らかの関係があります。仮に、繰り返し複数の段落で共に現れた場合、そのテキストにおいて、両者は比較的強い関係があるといえます。そのため、本情報はネットワークグラフを使用して可視化することができます。この作業は、テキスト・ツールズ内において、正規表現を実行し、「Group rows by」の設定をParagraphにすることで可能となります。

実践:
  • 『論語』において、「父母」、「君子」、「小人」、「禮」および「樂」を検索し、同じ段落におけるそれらの共起性に基づいたネットワークグラフを作成してください。
  • グラフの辺をダブルクリックすることで、Regexツールが再度開き、選択した辺と関連する項目がハイライトされます。この機能を使って、最も厚い辺から薄いものまで、いくつか選び、実際どのようなデータが表示されるのか分析してみてください。
  • 同じ方法を使って、「寶玉」、「黛玉」、「寶釵」など(参考:中国語ウィキペディア)といった人物名に特化し、如何に同じ登場人物の名前が『紅樓夢』の段落において、同時に表れているのか、明確にしてください。注:実際に、テキストで頻繁に出現している名前を選んでください(例えば、「寶玉」は、「賈寶玉」よりも頻繁に使われており、「賈寶玉」にもマッチします)。これは、社会ネットワーク分析の一例です。
  • 「Group rows by」をNoneと設定している場合、一時的に「Matched text view」に制約を加え、特定の文字列を検索した段落のみを表示することができます。制約の設定や解除は、「Matched text view」において対応した文字列をクリックすることで実行することができます。もしくは、「Summary」の画面において、アイテムのテキストラベルをクリックすることでそのアイテムに制約を加え、どの段落が特定の文字列を含んでいるか見ることができます。再度同じ単語で検索してください。ただし、この場合、「None」モードに設定してください。その結果、迅速にあなたの登場人物リストの中で最も使用頻度が低い段落を判別することができます。

[備注:このような検索をする場合、重要なことは、「非常に頻繁に」一致したテキストが出るのか、もしくは、他の要素を見逃していないか、検査することです。上記の『紅樓夢』では、例えば、賈寶玉を表す「寶玉」にマッチす文字列は非常に多くあるが、後程小説で登場する「甄寶玉」の場合も、「寶玉」にマッチする。このような現象を防ぐためには、正規表現の使用が必要です。例えば、regex「(?!甄)寶玉」と表記することで、「甄」を含まない「寶玉」の検索が可能となります。]

上記では、最も簡素な正規表現についてご紹介しました。正規表現は、より複雑なパターンを具体化することで、上記で説明した簡素な文字列検索と同じく、検索することができます。例えば、「以和為量」、「以生為本」もしくは「以我為隱」といった「以(何々)為(何々)」という文字列の具体化を事例としましょう。このような検索を可能とする為、決まった文字に検索するパターンを記述した「特殊な」文字を加えることで、正規表現を作ることが必要です。

正規表現を使用するにあたり、最も活用しやすい特定な構文は、以下の表にまとめています:

. 如何なる文字を対象に、一度のみマッチする
[abcdef] 如何なる文字a,b,c,d,e,fを対象に、一度のみマッチする
[^abcdef] a,b,c,d,e,f以外の如何なる文字にマッチする
(xyz) xyzにマッチし、結果はグループによって番号付けされる
? 文字やグループの後で、その文字やグループは任意とすること(すなわち、0もしくは1回マッチする)
? +, * もしくは {…}の後で、最短のマッチをする(つまり、最も長いのではなく、短いマッチを選択する)
* 文字やグループの後で、その文字やグループを0回もしくはそれ以上の回数マッチさせる
+ 文字やグループの後で、その文字やグループを1回もしくはそれ以上の回数マッチさせる
{2,5} 文字やグループの後で、その文字やグループを2、3、4もしくは5回マッチさせる
{2,} 文字やグループの後で、その文字やグループを2回もしくはそれ以上の回数マッチさせる
{2} 文字やグループの後で、その文字やグループを丁度2回マッチさせる
\3 3番目のグループの如何なる文字にもマッチする(一番左を1番とする)

構文は複雑に見えますが、比較的容易に始めることができます。例えば、上記表にある最初の特別な構文では、「ピリオド “.”」は、如何なる一つの文字にもマッチします。その為、上記で述べた事例の「以(何々)為(何々)」を正規表現にすると、「以.為.」となります。つまり、検索する文字列は、「 “以”、如何なる一つの文字、“為”、如何なる一つの文字」ということになります。

実践:
  • 「Group by None」に設定し、Regexの「以.為.」を『莊子』で調べてみてください。
  • このregexの検索結果の中には、検索対象として考えていなかった文字列もヒットすることが有ります。例えば、上記のregexでは、「以汝為?」もヒットします。なぜなら、正規表現マッチングの場合、句読点も「文字」として認識されるからです。この現象を避けるには、regexにおいて、如何なる文字にもマッチする「.」ではなく、「ネガティブ文字クラス(特定の文字を除外する)」を使用することです。この事例にあるregexの場合、「以[^。?]為[^。?]」となります。これを試し、上記の現象を回避してください。
  • 中国語の文章には、多くの異なる句読点があります。テキスト・ツールズでは、「\W(大文字)」をインプットすることによって、中国語における共通の句読点を表すことができ、「\w(小文字)」ではその他の句読点を表すことができます。仮に、「以\w為\w」と表記した場合、先程実験したregexと同じ結果が出るでしょう(しかし、これは英語のregexにとって一般的な慣習であり、「\w」と「\W」の結果は、異なるregexのインプットによって違い、中国語においては適応しないことが多々有ります)。
  • 『道德經(ctp:dao-de-jing)』における以下の文字列を正規表現を使ってテストしてください:
    • 如何なる4つの文字であり、中間に「之不」を含んでいる文字列。例えば、「視之不見」、「聽之不聞」など。

反復

反復は、上記図に表示している様々な反復オペレーターと修飾子を使うことで実行することができます。

  • {a,b}というオペレーターを使用することで、正規表現を数回反復することができます。この作業は、regexにおける直前のアイテムを修正し(文字やグループの明記)、少なくとも、a回からb回(もしくはbを空欄にすることで如何なる回数を表記)反復させることができます。仮に、コンマを無くし、{a}とすることで、直前のアイテムは、必ずa回反復させることができます。
  • 例えば、「仁.{0,10}義」は、文字としての「仁」にマッチし、その後には、0から10個のその他文字を含み、更に、その後には文字としての「義」が続きます。その為、「仁義」や「仁為之而無以為;上義」、「仁,託宿於義」といった検索がヒットします。
  • これは、グループにおいても同様の事が当てはまります。この場合、グループによって特定化されているパターンが(内容ではなく)特定回数反復するということになります。例えば、「(人.){2,}」は、「人來人往」、「人前人後」、及び「人做人配人疼」がマッチします。
  • 「+」、「*」及び「?」といったオペレーターが文字やグループの後に続いた場合、このような意味を持ちます:「+」は「{1,}」に値し、「*」は「{0,}」そして、「?」は「{0,1}」となります。
実践:
  • 上記に記した2つの具体例(例えば、「仁.{0,10}義」、「(人.){2,}」)を実験してください。
  • 『道德經(ctp:dao-de-jing)』における以下の項目について、正規表現を使ってテストしてください。
    • テキストにおける各「言い回し(句読点によって分けられた節)」。例えば、最初のマッチは、「道可道」であり、2つめは、「非常道」である、など。
    • 「之」を含む言い回しをマッチしてください。
    • 「之」を含む言い回しを選び、「之」が最初でもなく、最後でもない場合をマッチしてください。
  • 以下、『墨子』(ctp:mozi)における項目を正規表現とし、テストしてください:
    • 「君」の次に「父」が続く場合をマッチしてください(例えば、「君父」、「…君臣父…」、「君臣上下長幼之節,父…」、など)

グループ

反復意外に、正規表現の作用は、「グループ」と呼ばれる部分に区別し、これらのグループにマッチしたコンテンツに基づいて、更なる状況を表現することができます。それによって、より洗練されたパターンを表現することができます。

  • 仮に、「君不君」、「臣不臣」、「父不父」といった、とある文字の後に「不」が続き、更に同じ文字が続くという場合を事例としましょう(つまり、「人不知」といった検索は目的としていません)。
  • まず、最初の文字(如何なる文字でも)を「グループ」として「キャプチャー」し、その後、他の場所でそのグループのコンテンツにマッチングするか実験します。
  • 何かをグループでキャプチャーするということは、その対象を丸括弧で囲むことで実行できます(例えば、“(.)”は、如何なる文字にもマッチし、グループでキャプチャーされています)。
  • グループは、自動的に1から番号付され、左角括弧から始まり、regexは、左から右に動いていく。
  • 構文の「\1」を使用して、グループ1とマッチし、「\2」ではグループ2とマッチすることで、マッチングしたグループの内容を参照することができます。
  • 事例「(.).\1」では、如何なる文字とその文字との連続(どのような文字でも)をマッチすることができます。これを『論語』において試し、regexを句読点ではない文字にマッチするよう修正してください(「本,本」といった形でマッチングしない為に)。

もう一つの事例は、「禮云禮云」や「已乎已乎」といった一般的な反復のパターンです。このような例では、同じアプローチを使用することができます。一つの手段としては、「(..)\1」があります。これは、如何なる2つの文字にもマッチし、続けて2つの同じ文字にマッチします。もう一つの(相似した)例は、2つの異なるグループを使い、「(.)(.)\1\2」とすることです。これは、如何なる連続した文字X、Yにマッチし、更にXとYにマッチするという意味です。

実践:
  • 『詩経(ctp:book-of-poetry)』における「委委佗佗」や「戰戰兢兢」といった文字列にマッチするよう、正規表現を書き、テストしてください。
  • 『莊子』において、「XYZ,ZYX」といった複雑な反復スタイルにマッチする正規表現を作成し、テストしてください。X、YおよびZは、1〜5の文字を含むことができます。Regexは、「知者不言,言者不知」、「道無以興乎世,世無以興乎道」及び「安其所不安,不安其所安」といった項目にマッチングすべきです。

Regexの置き換え

置き換えの機能は、regexの検索機能と似たような方法です。この機能は、一つの具体的なテキストにおいて特定の正規表現を検索し、特定の値によって全ての場所において置き換えられます。置き換えは、シンプルな文字列でも可能ですし、正規表現の内容によって多様な形に設計することも可能です。特に、検索したregexにおいて、グープとしてマッチした項目については、構文の「$1」を使用することで、グループ1のテキストマッチングを含み、「$2」ではグループ2のマッチングをするという事が参照できます。一般的なregexの置き換え方法としては、外部から得たデータを「きれいに片付ける」、もしくは、他の特定の手段に使用するために準備をする、ということがあげられます。

例えば:

  • 「\W」を“”(文字列はなし)に置き換えることで、テキストにおける全ての句読点と改行を削除することができます。
  • 「^(\w{1,20})$」を「*$1」に置き換えることによって、1〜20の文字を含む如何なる行においてタイトルマーカーを加えることができます。検索結果に句読点は含まれず、ctext以外のテキストをインポートする際に有効的です。

バージョン間の違いを認識する

「Diff」ツールは、一字一字の2つの相似したテキストの「Diff」を実行するシンプルな方法です。相似性ツールと異なり、本ツールは、相似性の高い2つのテキスト(全く同じということでもない)をインプットする際に最も適しています。

Diffツールを使い、『正統道藏』における「太上靈寶天尊說禳災度厄經 (ctp:wb882781)」と『重刊道藏輯要』における同一のテキスト(ctp:wb524325)を比べてください。

ネットワークグラフ

正規表現Similarityツールを使用してグラフを作成する際、データは、ネットワークのタブにエクスポートとされています。ナビゲーションの説明に関しては、「Help」のタブを参照してください。ネットワークのタブにおけるグラフは、「GraphViz」フォーマットのサブセットに入力されます。一方、他のタブによって作成されたグラフの全ては、この同じフォーマットでダウンロードすることができます。より柔軟な方法で出版品質のグラフを作成したい場合、Gephiをダウンロード、インストールすることで、これらのファイルを開くことができます(https://gephi.org/)。

他のテキストを使用する場合

ctext.org以外のリソースから得た中国語のテキストは、テキスト・ツールズを経由して使用することができます。具体的な説明は、「Help」の「Loading texts」をご参照ください。

Creative Commons License
Posted in Chinese, Digital Humanities | Comments Off

University of Tokyo Hands-on ctext.org Workshop

Thanks to the help of Professor Nagasaki Kiyonori, I am thrilled to be holding this hands-on workshop covering usage of the Chinese Text Project and Text Tools in Tokyo this December. Details follow:

Digital Research Tools for Pre-modern Chinese Texts

講師:Donald Sturgeon 博士(ハーバード大学)

日時:2017年12月13日 17:00~20:00

場所:東京大学法文1号館第1階113教室

参加費無料

要参加申込(参加申込フォーム

主催:東京大学大学院人文社会系研究科人文情報学拠点

※無線LAN接続可能なノートパソコンをご持参ください。

※無線LANインターネット接続環境 をご用意しますが、接続可能台数に限りがありますので、できればご自分でインターネット接続環境もご用意いただけるとありがたいです。

中国古典テクストの世界最大のクラウドソーシング翻刻サイトChinese Text Project (ctext.org) の開発・運営者であるDonald Sturgeon先生をハーバード大学からお招きして、このサイトの基本をご紹介して頂くとともに、提供されているテクスト分析ツールを実際に操作しながら学んで頂きます。今回のツールは、基本的にWebブラウザ上で使えるようですので、特に新しいソフトウェアをインストールする必要はありません。

Posted in Chinese, Digital Humanities | Comments Off

Digital Research Tools for Pre-modern Chinese Texts

Interactive workshop 9:00am-12:00pm, November 18, 2017, held in B129, Northwest Building, 52 Oxford St., Cambridge, MA 02138
[Download slides]

Digital methods offer increasingly powerful tools to aid in the study and analysis of historical written works, both through exploratory techniques in which previously unnoticed trends and relationships are highlighted, as well as through computer-assisted assembly of data to refute or confirm particular hypotheses. Applying such techniques in practice often requires first overcoming technical challenges – in particular access to machine-readable editions of the desired texts, as well as to tools capable of performing such analyses.

This hands-on practical workshop introduces approaches intended to reduce the technical barriers to experimenting with these techniques and evaluating their utility for particular scholarly uses. The first part of this workshop introduces the Chinese Text Project, which has grown to become the largest full-text digital library of pre-modern Chinese. While on the one hand the website offers a simple means to access commonly used functions such as full-text search for a wide range of pre-modern Chinese sources, at the same time it also provides more sophisticated mechanisms allowing for more open-ended use of its contents, as well as the ability to contribute directly to the digitization of entirely new materials.

The second part of the workshop introduces tools for performing digital textual analysis of Chinese-language materials, which may be obtained from the Chinese Text Project or elsewhere. These include identification of text reuse within and between written materials, sophisticated pattern search using regular expressions, and visualization of the results of these and other types of analysis.

Posted in Chinese, Digital Humanities | Comments Off

Unsupervised identification of text reuse in early Chinese literature

This paper will appear in Digital Scholarship in the Humanities (currently available in “Advance articles”).

Text reuse in early Chinese transmitted texts is extensive and widespread, often reflecting complex textual histories involving repeated transcription, compilation, and editing spanning many centuries and involving the work of multiple authors and editors. In this study, a fully automated method of identifying and representing complex text reuse patterns is presented, and the results evaluated by comparison to a manually compiled reference work. The resultant data is integrated into a widely used and publicly available online database system with browse, search, and visualization functionality. These same results are then aggregated to create a model of text reuse relationships at a corpus level, revealing patterns of systematic reuse among groups of texts. Lastly, the large number of reuse instances identified make possible the analysis of frequently observed string substitutions, which are observed to be strongly indicative of partial synonymy between strings.

Download the full paperAccording to Oxford University Press, this link should give you access to the PDF even if not accessing from a subscribing institution.

Posted in Chinese, Digital Humanities | Comments Off