软件安装
P18
- Python 3.8.2 https://www.python.org/
- pip pipenv
- NLTK、NLTK-Data
pip install nltk
http://www.nltk.org/install.html - NumPy
pip install numpy
- Matplotlib
pip install matplotlib
- NetworkX
pip install networkx
- Prover9
1.1 语言计算:文本和单词
IDLE(Interactive DeveLopment Environment) 交互式开发环境
- python语法:
- 幂次方运算2 的 4 次方
2**4
- 单引号与双引号均可表示字符串:
'sssss'
与"sssss"
- 进行精确(浮点)除法
from __future__ import division
- 幂次方运算2 的 4 次方
>>> 3/4
0.75
>>> 3//4
0
- 搜索文本
-
text1.concordance('monstrous')
concordance: 一致 text1.similar('monstrous')
-
text2.common_contexts(['monstrous', 'very'])
[ ]中可以有多个词汇,无共同上下文时返回 not found
-
- 离散图:
- 需要安装 NumPy
text4.dispersion_plot(['citizens', 'democracy', 'freedon', 'duties', 'America'])
- 生成文本:
text3.generate()
- 计数词汇
- 单词和标点符号均是标识符,统计时会把标点符号也计入数据
len(text3)
from __future__ import division
-
len(text3) / len(set(text3))
每个词汇平均使用次数 text3.count('smote')
-
100 * text4.count('a') / len(text4)
a 的出现频率百分比
- 命名函数
>>> def lexical_diversity(text):
... return len(text)/ len(set(text))
...
>>> def percentage(count, total):
... return 100 * count / total
1.2 近观 Python:将文本当做词链表
-
链表
sent1 = ['Call', 'me', 'Ishmael', '.']
- [‘a’, ‘b’, ‘c’] 将文本以链表形式存储,可以查阅、作为函数参数
- 可以做加法、乘法运算等
sent1+sent2
sent1 = (sent1 + ' ' ) * 3
- 追加:
sent1.append('Some')
-
索引列表
text4[173]
- 找索引:
text4.index('awaken')
text5[16715:16735]
-
text5[0:9]
前闭后开区间,包含 0~8位共9个元素 -
text5[-2:]
倒数2个元素
-
字符串
- 以空格串接
' '.join(['Monty', 'Python'])
- 按空格进行分割
'Monty Python'.split()
- 以空格串接
1.3 计算语言:简单的统计
习题答案
https://blog.csdn.net/qq_36303924/article/details/81025423