计量语言学


Quantitative Linguistics

关于这个学科(转载)

计量语言学是以真实的语言交际活动中呈现的各种语言现象、语言结构、结构属性以及它们之间的相互关系作为研究对象,
通过概率论、随机过程、微分与微分方程、函数论等数学的定量方法(与代数等数学的定性方法相对)对其进行精确的测量、观察、模拟、建模和解释,
寻找语言现象背后的数理规律,揭示各种语言现象形成的内在原因,
探索语言系统的自适应机制和语言演化的动因。

简言之,计量语言学是以真实语料为基础、用精确的方法来研究语言结构与发展规律的语言学分支学科。


语言是人所使用的符号工具、使用的这种工具的行为是言语动作,而行为的结果是语言数据。

语言学通过言语动作和语言数据来研究语言。
语言智能,通过语言数据(让机器)模拟言语行为,挖掘其中蕴含的信息。

  • 语言智能
    • 研究目标:使计算机理解和运用自然语言
    • 常见任务:语音合成、语音识别、光学字符识别(Optical Character Recognition,OCR)、词法分析、句法分析、机器翻译等
  • 语言资源
    • 广义:包括语言数据、具有特定语言能力的人、语言文化成果、语言研究的成果等。
    • 狭义:指大规模的可使用的语言数据。

PPT:

  • QL04-1句法和句义
    • 句子的语言学结构:句法成分
    • 句子的语言学结构:句型
    • 句法信息的表示形式:短语结构语法、依存语法
    • 句子的语义
  • QL04-2篇章和修辞
    • 篇章的结构:修辞
    • 篇章信息处理主要任务:文本分类、自动摘要、信息抽取、指代消解
    • 修辞结构理论RST
  • QL04-3对话
    • 对话的结构:语境、会话、会话准则
    • 对话信息处理

第五周及以后

  • 科学是什么?
    • 反映自然社会思维等的客观规律的分科的知识体系。 ——《现代汉语词典》
    • 科学可以被认为是三重结合体,由对象、途径和理论三个核心要素共同作用的一个完整体系。
  • 科学的第一核心要素:研究的对象
    • 研究的对象是:
    • 某一事物或事物的某些属性
      • 如事物:水星,属性:质量、大小
    • 属性之间的相互关系,各类关系的结构
      • 如:引力-半径,公转周期-角速度
    • 这些结构的功能,这些功能的构建过程
      • 如:引力和轨迹-航天器减速
    • 综合系统与这个系统演化的历史
      • 如:水星对我们的意义?水星如何形成
  • 科学的第二核心要素:途径
    • 研究的视角
    • 研究的目标(应用、描述、预测、追溯、理解、解释)
    • 研究的核心问题
      • 实证性问题
      • 概念性问题
      • 方法论问题,如:靠大量观测数据推测轨迹是否合理?
      • 评价性问题
    • 研究的方法(直觉、反省、观察、实验、归纳和演绎)
      • 定性的方法不仅是文字的描述,也包括定性的数学方式,如代数逻辑集合的理论和图示等等。
      • 定量的方法指的是数学定律组合学概率论,微积分方程等表现形式。
  • 科学的第三核心要素:理论
    • 概念
      • 概念是人脑对客观事物本质的反映,是对特征的独特组合而形成的知识单元
      • 概念是理论存在的必要不充分条件
    • 假设
    • 定律
      • 在理论上和实证上都有根有据的假设才可以称为定律
      • 定律是对生成可观察现象的机制的陈述
  • 科学的语言学理论尚且不存在

  • 计量语言学中的普适定律
    • 分布定律,描述语言结构在语言系统和语言使用中的定量特征
    • 函数定律,描述不同的语言结构及其属性间的相互关系
    • 演化定律,建立了相关语言性质变化的动力模型
  • 齐普夫定律(分布定律)
    • 词的频次和它相对应的频序的乘积大体上接近一个常数
    • 公式:$f_rr=K$
    • 记 $\frac{f_r}{N}$ 为词的频率 $P_r$,则词频分布公式为:$$P_r=Kr^{-1}$$
    • 对其修正:$$P_r=Cr^{-b}$$其中b>0,C>0,$\sum_{r=1}^nP_r=1$
    • 两种常见的分布形态:幂律分布、泊松分布
  • 门策拉-阿尔特曼定律(函数定律)
    • 一种语言结构越长,则构成它的部分越短。成分长度是结构长度的函数
    • 记 y 为成分长度,x 为结构长度,表示为$$y=ax^{-b}e^{-cx}$$
  • 皮奥特罗夫-阿尔特曼定律(演化定律)
    • 这一定律一般用来研究借词数量增加、形态变化等有关语言演化的问题。
    • 其中$p_t$是新形式所占的比例,$k_t$ 表示一个时间函数(也可能是常量),C 表示变化区间,t 表示时间,$dp_t$ 表示变化率 $$dp_t=k_tp_t(C-p_t)dt$$

复杂网络

  • 分析指标
    • 节点相关(度、平均度、度的分布)
    • 网络相关(相关性、小世界属性、中心性)
  • 工具
    • 复杂网络分析工具
      • cytoscape
      • python newworkx包
      • Pajek
    • 常用语言计量软件
      • QUITA
      • Altmann-Fitter
      • NLREG & Curve Table

QUITA, Quantitative Index Text Analyzer ,可计算22种计量指标,记总词例(token)数为 N,词型(type)数为 V

  • $TTR$ - 型例比
    • 最为常用的一个文本计量指标,反映词汇使用的丰富程度
  • $Entropy$熵
  • $RR$ 重复率
  • $RR_{mc}$ 相对重复率

统计文本的计量指标

import jieba
from collections import Counter
from math import log, sqrt

with open("QiuzhuangShandian.txt", "r", encoding='ANSI') as t:
    txt = t.read()

    words = jieba.lcut(txt)     # 使用精确模式对文本进行分词

    #print(words[:100])
    d = Counter(words)

    other = [',', '\u3000', '。', '\n', '”', '“', ' ', '?', ':']
    for i in other:
        del d[i]

    N = sum(d.values())   
    V = len(d)
    H = sum([(d[r]/N)*log(d[r]/N,2) for r in d.keys()])
    
    RR = sum([(d[r]/N)*(d[r]/N) for r in d.keys()])
    RRMC = (1-sqrt(RR))/(1-1/sqrt(V))
    
    ATL = sum([len(i) for i in d.keys()])/len(d)
    tlfs = [i for i in Counter([len(i) for i in d.keys()]).items()]
    tlfs.sort()
    
    tmp_h = [x for x in zip(range(1, len(d)+1),d.most_common())]
    tmp_h[:] = [(x,y[1]) for x,y in tmp_h]
    #print(tmp_h)
    
    h_point = 0
    for i in range(len(tmp_h)):
        if tmp_h[i][1] <= i:
            h_point = i
            break
    
    R1 = 1- sum([i[1] for i in tmp_h[:h_point]])/N + (h_point*h_point)/(2*N)
    G = (V+1-2*sum([r*tmp_h[r-1][1] for r in range(1, len(tmp_h)+1)])/N)/V
    
    L = sum([sqrt((tmp_h[r][1]-tmp_h[r+1][1])**2+1) for r in range(len(tmp_h)-1)])
    LR = sum([sqrt((tmp_h[r][1]-tmp_h[r+1][1])**2+1) for r in range(h_point-1)])
    
    #print(d.most_common())
    print("{:<30}{:>15}".format("Types:", V))
    print("{:<30}{:>15}\n".format("Tokens:", N))
    
    print("{:<30}{:>15}".format("(1)TTR:", V/N))
    print("{:<30}{:>15}".format("(2)h-point:", h_point))
    print("{:<30}{:>15}".format("(3)entropy:", H))
    print("{:<30}{:>15}".format("(4)Average Token Length:", ATL))
    print("{:<30}{:>15}".format("(5)R1:", R1))
    print("{:<30}{:>15}".format("(6)RR:", RR))
    print("{:<30}{:>15}".format("(7)RRMC:", "[no tagger]"))
    print("{:<30}{:>15}".format("(8)TC:", "[no tagger]"))
    print("{:<30}{:>15}".format("(9)STC:", "[no tagger]"))
    print("{:<30}{:>15}".format("(10)PTC:", "[no tagger]"))
    print("{:<30}{:>15}".format("(11)Activity:", "[no tagger]"))
    print("{:<30}{:>15}".format("(12)Descriptivity:", "[no tagger]"))
    
    print("{:<30}{:>15}".format("(13)Lambda:", L*log(N,10)/N))
    print("{:<30}{:>15}".format("(14)Adjusted Modules:", "[...]"))
    print("{:<30}{:>15}".format("(15)G:", G))
    print("{:<30}{:>15}".format("(16)R4:", 1-G))
    
    print("{:<30}{:>15}".format("(17)Hapax Percentage:", len([i for i in d.values() if i==1])/N))
    print("{:<30}{:>15}".format("(18)L:", L))
    print("{:<30}{:>15}".format("(19)WritersView:", "[...]"))
    print("{:<30}{:>15}".format("(20)CurveLength RIndex:", 1-LR/L))
    print("{:<30}{:>15}".format("(21)Verb Distances:", "[...]"))
    
    print("{:<30}".format("(22)Token Length Frequency Spectrum:"))
    print(tlfs)

结课论文

字的习得及其复杂度

假设:
一种符号笔画越多,学习它的时间就越晚。

研究步骤:
1)从汉语、日语等中取一定数量汉字。
2)统计各年级教科书中出现的汉字的频次和复杂度。笔画数量可以用来测量复杂度。
3)讨论汉字复杂度和学习的顺序之间是否具有函数关系。
4)求证复杂度的离散程度和学习顺序之间的函数关系。
5)比较不同语言的函数关系的异同

other

课程分数:

  • 考勤
  • 作业
    • 科学的方法论
    • python 统计语料指标
    • 学术汇报(25min汇报+5min提问)
    • 课程论文(4000+)
  • 突出表现

文章作者: ╯晓~
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ╯晓~ !
评论
  目录