文本挖掘学习笔记(二):文档信息向量化与主题关键词提取

2023-11-08

注:学习笔记基于文彤老师文本挖掘的系列课程

全文基于《射雕英雄传》语料库,下面是读入数据的一个基于Pandas的通用操作框架。

读入为数据框

import pandas as pd
from matplotlib import pyplot as plt
%matplotlib inline
# 有的环境配置下read_table出错,也可用用read_csv
raw = pd.read_table("金庸-射雕英雄传txt精校版.txt",
                  names = ['txt'],  encoding ="GBK")
print(len(raw))
raw.head()
7432
txt
0 全本全集精校小说尽在:http://www.yimuhe.com/u/anglewing26...
1 更多资源下载:http://qqzone.ctdisk.com
2 ※声明:本电子书仅供读者预览,请在下载24小时内删除,不得用作商业用途;如果喜欢请购买正版图书!※
3 ------------------------------------------
4 “金庸作品集”新序

加入章节标识

# 章节判断用变量预处理
def m_head(tmpstr):
    return tmpstr[:1]

def m_mid(tmpstr):
    return tmpstr.find("回 ")
#取出进行判断的变量
raw['head'] = raw.txt.apply(m_head)
raw['mid'] = raw.txt.apply(m_mid)
raw['len'] = raw.txt.apply(len)#防止特殊情况,设置长度
raw.head()
txt head mid len
0 全本全集精校小说尽在:http://www.yimuhe.com/u/anglewing26... -1 55
1 更多资源下载:http://qqzone.ctdisk.com -1 31
2 ※声明:本电子书仅供读者预览,请在下载24小时内删除,不得用作商业用途;如果喜欢请购买正版图书!※ -1 49
3 ------------------------------------------ - -1 42
4 “金庸作品集”新序 -1 9
# 章节判断
chapnum = 0
for i in range(len(raw)):
    if raw['head'][i] == "第" and raw['mid'][i] > 0 and raw['len'][i] < 30 :
        chapnum += 1
    if chapnum >= 40 and raw['txt'][i] == "附录一:成吉思汗家族" :
        chapnum = 0
    raw.loc[i, 'chap'] = chapnum
    
# 删除临时变量,这里必须删除,否则后续sum函数处会出错
del raw['head']
del raw['mid']
del raw['len']
raw.head()
txt chap
0 全本全集精校小说尽在:http://www.yimuhe.com/u/anglewing26... 0.0
1 更多资源下载:http://qqzone.ctdisk.com 0.0
2 ※声明:本电子书仅供读者预览,请在下载24小时内删除,不得用作商业用途;如果喜欢请购买正版图书!※ 0.0
3 ------------------------------------------ 0.0
4 “金庸作品集”新序 0.0

提取出所需章节

raw[raw.chap == 1].head()
txt chap
33 第一回 风雪惊变 1.0
34 1.0
35 1.0
36 那说话人五十来岁年纪,一件青布长袍早洗得褪成了蓝灰带白。只听他两片梨花木板碰了几下,左手... 1.0
37 几处败垣围故井,向来一一是人家。” 1.0
rawgrp = raw.groupby('chap')
chapter = rawgrp.agg(sum) # 只有字符串列的情况下,sum函数自动转为合并字符串
chapter = chapter[chapter.index != 0]#排除前言和附录

1.文档信息的向量化

1.1词袋模型(BOW)

词袋模型 计算频数,词集模型,不计算频数

词袋模型的gensim实现

gensim的安装
pip install genism

安装完成后如果使用word2vec时报错,建议去gensim官网下载MS windows install的exe程序进行安装:https://pypi.python.org/pypi/gensim

建立字典
Dictionary类用于建立word<->id映射关系,把所有单词取一个set(),并对set中每个单词分配一个Id号的map

class gensim.corpora.dictionary.Dictionary(

documents=None : 若干个被拆成单词集合的文档的集合,一般以list in list形式出现
prune_at=2000000 : 字典中的最大词条容量
)

Dictionary类的属性

token2id 字典形式

dict of (str, int) – token -> tokenId.

id2token:反过来的字典

dict of (int, str) – 反向token2id,以延迟方式初始化以节省内存。

dfs

dict of (int, int) – Document frequencies: token_id -> in how many documents contain this token.(第几个词条被几个文档包含)

num_docs

int – 处理的文档数。

num_pos

int – 语料库位置的总数(处理过的单词数)。

num_nnz

int – Total number of non-zeroes in the BOW matrix.(矩阵中非零的总数。)

from gensim.corpora import Dictionary

texts = [['human', 'interface', 'computer']]
dct = Dictionary(texts)  # fit dictionary
dct.num_nnz
3
# 向字典增加词条
dct.add_documents([["cat", "say", "meow"], ["dog"]])  
dct.token2id#结果仍然是按照流水号
{'cat': 3,
 'computer': 0,
 'dog': 6,
 'human': 1,
 'interface': 2,
 'meow': 4,
 'say': 5}

转换为BOW稀疏向量

补充:密集向量和稀疏向量的区别: 密集向量的值就是一个普通的Double数组 而稀疏向量由两个并列的 数组indices和values组成 例如:向量(1.0,0.0,1.0,3.0)用密集格式表示为[1.0,0.0,1.0,3.0],用稀疏格式表示为(4,[0,2,3],[1.0,1.0,3.0]) 第一个4表示向量的长度(元素个数),[0,2,3]就是indices数组,[1.0,1.0,3.0]是values数组 表示向量0的位置的值是1.0,2的位置的值是1.0,而3的位置的值是3.0,其他的位置都是0

dct.doc2bow( # 转换为BOW格式:list of (token_id, token_count)

document : 用于转换的词条list
allow_update = False : 是否直接更新所用字典
return_missing = False : 是否返回新出现的(不在字典中的)词

)

输出结果(前id号,后频数)

[(0, 2), (1, 2)],表明在文档中id为0,1的词汇各出现了2次,至于其他词汇则没有出现
return_missing = True时,输出list of (int, int), dict of (str, int)

dct.doc2bow(["this", "is", "cat", "not", "a", "dog"])
[(3, 1), (6, 1)]
dct.doc2bow(["this", "is", "cat", "not", "a", "dog"], return_missing = True)
#同时返回新出现的(不在字典中的)词
([(3, 1), (6, 1)], {'a': 1, 'is': 1, 'not': 1, 'this': 1})

转换为BOW长向量

可考虑的思路:

1.从稀疏格式自行转换。

2.直接生成文档-词条矩阵。(方便常用)

doc2idx( # 转换为list of token_id

document : 用于转换的词条list
unknown_word_index = -1 : 为不在字典中的词条准备的代码

输出结果

按照输入list的顺序列出所出现存在的各词条ID

dct.doc2idx(["this", "is", "a", "dog", "not", "cat"])#输出结果的id
[-1, -1, -1, 6, -1, 3]

1.2生成文档-词条矩阵(常用)

1.2.1用Pandas库实现

基本程序框架:

原始文档分词并清理,拼接为同一个df,汇总并转换为文档-词条矩阵格式,最后去除低频词

# 设定分词及清理停用词函数
# 熟悉Python的可以使用 open('stopWord.txt').readlines() 获取停用词list,效率更高
stoplist = list(pd.read_csv('停用词.txt', names = ['w'], sep = 'aaa', 
                            encoding = 'utf-8', engine='python').w)
import jieba 
def m_cut(intxt):
    return [ w for w in jieba.cut(intxt) 
            if w not in stoplist and len(w) > 1 ] 
# 设定数据框转换函数
def m_appdf(chapnum):
    tmpdf = pd.DataFrame(m_cut(chapter.txt[chapnum + 1]), columns = ['word'])
    tmpdf['chap'] = chapter.index[chapnum] 
   # tmpdf['chap'] = chapnum+1# 也可以直接 = chapnum + 1(等同于上一句)
    return tmpdf
# 全部读入并转换为数据框
df0 = pd.DataFrame(columns = ['word', 'chap']) # 初始化结果数据框
for i in range(len(chapter)):
    df0 = df0.append(m_appdf(i))#将被 append 的对象添加到调用者的末尾
df0.tail()
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\lenovo\AppData\Local\Temp\jieba.cache
Loading model cost 0.697 seconds.
Prefix dict has been built successfully.
word chap
6045 黄蓉 40.0
6046 事迹 40.0
6047 神雕侠侣 40.0
6048 中续 40.0
6049 叙述 40.0
# 输出为序列格式
df0.groupby(['word', 'chap']).agg('size').tail(10)#分组统计出词频
word  chap
龙绡    8.0     1
龙行虎步  30.0    1
龙语    28.0    1
龙飞    36.0    1
      37.0    2
龙马    5.0     1
龙骨    19.0    1
      20.0    1
龟兹    30.0    1
龟息功   37.0    1
dtype: int64
# 直接输出为数据框
t2d = pd.crosstab(df0.word, df0.chap)
len(t2d)
43931
t2d.head()
chap 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 ... 31.0 32.0 33.0 34.0 35.0 36.0 37.0 38.0 39.0 40.0
word
1265 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 1 0 0 0
Beatrice 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Butt 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Charlotte 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Dark 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0

5 rows × 40 columns

# 计算各词条的总出现频次,准备进行低频词删减
totnum = t2d.agg(func = 'sum', axis=1)#交叉表横向词条相加得到词频
totnum
word
1265         1
Beatrice     1
Butt         1
Charlotte    1
Dark         1
            ..
龙飞           3
龙马           1
龙骨           2
龟兹           1
龟息功          1
Length: 43931, dtype: int64
t2dclean = t2d.iloc[list(totnum >= 10)]#去除词频小于10的词条
t2dclean.T.head()
word 一世 一个 一个个 一个多 一个月 一举 一事 一人 一人道 一代 ... 默写 默然不语 默默 黯然 鼻子 鼻息 齐名 齐向 齐声 龙王
chap
1.0 0 30 1 0 1 0 0 7 0 0 ... 0 1 1 0 0 0 0 1 4 0
2.0 0 39 0 0 1 0 0 8 0 0 ... 0 1 0 0 0 0 0 0 4 0
3.0 0 30 0 0 0 0 0 10 0 0 ... 0 0 0 1 0 0 0 0 16 0
4.0 1 45 0 0 0 0 0 1 0 0 ... 0 1 0 0 2 0 0 0 4 0
5.0 1 31 1 1 0 0 0 5 0 0 ... 0 1 0 1 0 1 0 1 3 0

5 rows × 4052 columns

1.2.2 用sklearn库实现(常用)

CountVectorizer类的基本用法

文本信息在向量化之前很难直接纳入建模分析,考虑到这一问题,专门用于数据挖掘的sklearn库提供了一个从文本信息到数据挖掘模型之间的桥梁,即CountVectorizer类,通过这一类中的功能,可以很容易地实现文档信息的向量化。

class sklearn.feature_extraction.text.CountVectorizer(

input = 'content' : {'filename', 'file', 'content'}
filename为所需读入的文件列表, file则为具体的文件名称。
encoding='utf-8' : 文档编码
stop_words = None : 停用词列表,当analyzer == 'word'时才生效(针对拉丁语)
min_df / max_df : float in range [0.0, 1.0] or int, default = 1 / 1.0
词频绝对值/比例的阈值,在此范围之外的将被剔除
小数格式说明提供的是百分比,如0.05指的就是5%的阈值

CountVectorizer.build_analyzer()

返回文本预处理和分词的可调用函数

from sklearn.feature_extraction.text import CountVectorizer
countvec = CountVectorizer(min_df = 2) # 在两个以上文档中出现的才保留

analyze = countvec.build_analyzer()
analyze('郭靖 和 哀牢山 三十六 剑 。')
['郭靖', '哀牢山', '三十六']

CountVectorizer.fit_transform(raw_documents)

对文档进行学习(处理),返回term-document matrix(词条文档矩阵)
等价于先调用fit函数,然后再调用transform函数,但是效率更高

先用fit再用transform分开算

countvec.fit(['郭靖 和 黄蓉 哀牢山 三十六 剑 。', '黄蓉 和 郭靖 郭靖'])
CountVectorizer(min_df=2)
countvec.get_feature_names() # 词汇列表,实际上就是获取每个列对应的词条
['郭靖', '黄蓉']
countvec.vocabulary_ # 词条字典
{'郭靖': 0, '黄蓉': 1}
x = countvec.transform(['郭靖 和 黄蓉 哀牢山 三十六 剑 。', '黄蓉 和 郭靖 郭靖'])
type(x)
scipy.sparse.csr.csr_matrix
x.todense() # 将稀疏矩阵直接转换为标准格式矩阵
matrix([[1, 1],
        [2, 1]], dtype=int64)

直接调用fit_transform一次实现

countvec.fit_transform(['郭靖 和 哀牢山 三十六 剑 。', '黄蓉 和 郭靖 郭靖'])
# 一次搞定
<2x1 sparse matrix of type '<class 'numpy.int64'>'
	with 2 stored elements in Compressed Sparse Row format>

使用sklearn生成射雕的章节d2m矩阵

将章节文档数据框处理为空格分隔词条的文本格式

使用fit_transform函数生成bow稀疏矩阵

转换为标准格式的d2m矩阵

rawchap = [ " ".join(m_cut(w)) for w in chapter.txt.iloc[:5]] #取前五章
rawchap[0]
'第一回 风雪 惊变 说话 五十 年纪 一件 青布 长袍 早洗 褪成 蓝灰 带白 两片 梨花 木板 几下 左手 竹棒 羯鼓 敲起 唱道 小桃 无主自 开花 烟草 茫茫 晚鸦 几处 败垣围 故井 向来 说话 木板 几下 说道 这首 七言诗 兵火 过后 家家户户 残瓦 破败 之地 小人 叶老汉 一家 四口 悲欢离合 他四人 金兵 冲散 好容易 团聚 欢天喜地 回到 故乡 卫州 房屋 金兵 干干净净 无可奈何 只得 京城 汴梁 生计 料想 天有不测风云 人有旦夕祸福 他四人 刚进 汴梁 迎面 一队 金兵 带兵 头儿 一双 三角 眼觑 叶三姐 美貌 下马 一把 抱住 哈哈大笑 放上 马鞍 说道 小姑娘 回家 服侍 老爷 叶三姐 拼命 挣扎 那金兵 长官 喝道 不肯 父母 兄弟 提起 狼牙棒 棒打 叶四郎 头上 登时 脑浆 迸裂 一命呜呼 阴世 新添 枉死鬼 阳间 不见 少年人 叶老汉 妈妈 搂住 儿子 尸体 放声大哭 长官 提起 狼牙棒 一棒 一个 叶三姐 啼哭 说道 长官 凶恶 回家 长官 大喜 叶三姐 带得 回家 叶三姐 不防 抢步 拔出 长官 腰刀 对准 心口 挺刀 说时迟 那时快 钢刀 刺去 眼见 可报 父母 兄弟 大仇 长官 久经 战阵 武艺 精熟 顺手 一推 叶三姐 登时 长官 一声 贱人 叶三姐 举起 钢刀 脖子 中一勒 可怜 花容月貌 无双 惆怅 芳魂 九泉 一段 一段 村民 无不 咬牙切齿 愤怒 叹息 那人 众位 欺心 举头 三尺 神明 作恶 报应 天下 凶徒 人吃人 那金兵 大宋 天下 杀人放火 奸淫掳掠 无恶不作 不见 报应 只怪 大宋 官家 不争气 中国 本来 兵多将广 见到 金兵 到来 远远地 逃之夭夭 剩下 老百姓 遭殃 好似 叶三姐 一家 惨祸 江北 之地 成千成万 家常便饭 诸君 江南 天堂 怕只怕 金兵 何日 到来 宁作 太平 莫为 乱世 小人 张十五 今日 服侍 众位 听客 一段 说话 叫作 叶三姐 节烈 话本 说彻 散场 两片 梨花 木板 啪啪 一阵 托出 一只 盘子 村民 有人 拿出 两文 三文 放入 木盘 霎时间 六七十 张十五 铜钱 放入 囊中 起行 村民 走出 一个二十 大汉 说道 北方 北方 口音 张十五 身材 魁梧 浓眉大眼 大汉 小弟 做东 三杯 十五大 说道 素不相识 怎敢 叨扰 大汉 喝上 三杯 相识 名叫 郭啸天 指着 身旁 一个 白净 面皮 汉子 这位 杨铁心 杨兄弟 适才 二人 说唱 叶三姐 节烈 说得好 几句话 想要 请问 十五道 今日 得遇 郭杨 二位 有缘 郭啸天 张十五 来到 村头 一家 酒店 饭桌 旁坐 酒店 主人 跛子 两根 拐杖 慢慢 两壶 黄酒 一碟 蚕豆 一碟 花生 一碟 豆腐干 另有 三个 切开 咸蛋 自行 门口 板凳 抬头 天边 正要 落山 太阳 三人望 一眼 郭啸天 张十五 两杯 说道 乡下 地方 初二 十六 下酒 之物 莫怪 十五道 两位 口音 遮莫 北方 杨铁心 兄弟 山东 人氏 受不了 金狗 肮脏 三年 前来 人情 听得 说道 江南 犹似 天堂 怕只怕 金兵 何日 到来 金兵 打过 江来 张十五 江南 花花世界 遍地 金银 放眼 美女 金兵 一日 不想 他来 不来 拿主意 金国 临安 宋朝廷 郭啸天 杨铁心 齐感 诧异 同声 问道 却是 怎生 十五道 中国 百姓 女真人 多上 一百倍 朝廷 忠臣 良将 一百个 一个 金兵 抵挡 我大宋 北方 半壁江山 当年 徽宗 钦宗 高宗 父子 三人 送给 金人 三个 皇帝 任用 奸臣 欺压百姓 出力 抵抗 金兵 大将 罢免 罢免 杀头 杀头 花花 江山 双手 却之不恭 只得 朝廷 任用 奸臣 地下 金兵 驾到 郭啸天 伸手 桌上 重重 一拍 杯儿 筷儿 碟儿 说道 十五道 想当年 宗道君 皇帝 一心 只想 长生不老 神仙 所用 奸臣 蔡京 专帮 皇帝 搜括 百姓 无耻之徒 童贯 梁师成 只会 吹牛拍马 太监 李邦彦 皇帝 嫖院 玩耍 浪子 道君 皇帝 正事 诸般 不理 整日 求仙 写字 画画 便是 找寻 稀奇古怪 花木 石头 金兵 眼前 束手无策 一缩 皇位 传给 儿子 钦宗 忠臣 李纲 守住 京城 汴梁 各路 大将 率兵 勤王 金兵 攻打 不进 只得 退兵 料想 钦宗 听信 奸臣 李纲 罢免 不用 威名 素著 能征惯战 宿将 信用 一个 自称 天神 天将 会得 呼风唤雨 骗子 郭京 天将 守城 天将 理睬 京城 不破 终于 徽宗 钦宗 金兵 两个 昏君 自作自受 害苦 中国 千千万万 百姓 郭啸天 杨铁心 越怒 郭啸天 靖康 年间 徽钦 二帝 金兵 这件 大耻 听得 天神 天将 听见 只道 说笑话 难道真 糊涂 十五道 杨铁心 康王 南京 接位 皇帝 手下 韩世忠 岳爷爷 忠勇 大将 本来 大可 发兵 北伐 直捣黄龙 收复 京城 汴梁 难事 只恨 秦桧 奸贼 心想 议和 岳爷爷 害死 张十五 杨二人 一杯 一口 饮干 说道 岳爷爷 两句诗 壮志 饥餐 胡虏 笑谈 渴饮 匈奴血 两句诗 说出 中国 全国 百姓 心里话 秦桧 这大 奸臣 运气 可惜 迟生 六十年 郭啸天 问道 六十年 十五道 两位 英雄气概 豪杰 身手 临安 奸臣 一把 揪住 三个 不用 蚕豆 冷酒 人大 杨铁心 一壶酒 喝完 一壶 三人 不住 痛骂 秦桧 跛子 一碟 蚕豆 一碟 花生 三人 痛快 两声 冷笑 杨铁心 曲三 秦桧 跛子 三道 想要 岳爷爷 议和 罪魁祸首 秦桧 三人 诧异 问道 秦桧 三道 秦桧 宰相 议和 议和 宰相 岳爷爷 一心一意 要灭 金国 迎接 徽钦 二帝 回来 两个 皇帝 回来 高宗皇帝 几句话 一跷 一拐 坐在 木凳 抬头 望天 一动不动 出神 这曲 容貌 四十 年纪 弓腰 曲背 鬓边 见白 背后 倒似 老头子 模样 门外 一个 女孩子 声音 老虎 三只 老虎 爹爹 下酒 老虎 老虎 一只 公鸡 门外 扑进来 跟着 一个 女孩 双手 烧火 火叉 进门 女孩 五六岁 年纪 头发 两根 小辫子 满脸 泥污 身上 衣服 泥污 泥潭 爬起来 老虎 曲三 脸上 露出 笑容 显得 慈爱 乖宝 几只 老虎 女孩 着火 追赶 公鸡 三只 老虎 一只 六只 五只 爹爹 下酒 乖宝 一只 雄鸡 飞扑 出门 女孩 挺火叉 半晌 十五道 这位 兄弟 害死 岳爷爷 罪魁祸首 秦桧 高宗皇帝 高宗皇帝 原本 无耻 事情 自然 郭啸天 问道 无耻 十五道 当年 岳爷爷 几个 胜仗 金兵 血流成河 尸积 如山 逃命 之力 招架 之功 北方 中国 义民 起兵 鞑子 后路 手忙脚乱 魂不附体 高宗 送到 降表 投降 求和 金人 皇帝 自然 大喜若狂 说道 议和 先得 岳飞 秦桧 定下 奸计 风波 害死 岳爷爷 绍兴 十一年 十二月 岳爷爷 遭害 一个月 绍兴 十二年 正月 和议 成功 宋金 两国以 水中 流为界 高宗皇帝 向金国 称臣 这道 降表是 怎生 书写 杨铁心 那定 不要脸 十五道 可不是 这道 降表 记得 高宗皇帝 名叫 赵构 降表中 写道 构言 蒙恩造 许备 藩国 世世 子孙 谨守 臣节 皇帝 生辰 正旦 遣使 称贺 不绝 岁贡 二十五万两 二十五万匹 奴才 世世 子孙 金国皇帝 奴才 奴才 不打紧 中国 百姓 可不是 跟着 奴才 一声 郭啸天 桌上 重重 一记 震倒 一只 酒杯 水流 满桌 怒道 不要脸 不要脸 这鸟 皇帝 算是 一门 皇帝 十五道 全国 军民 听到 讯息 无不 愤慨 之极 淮水 以北 百姓 眼见 河山 恢复 无望 更是 伤心 泣血 高宗 宝座 坐得 稳若 泰山 秦桧 大功 秦桧 本来 封到 鲁国公 加封 太师 荣宠 无比 权势 熏天 高宗 孝宗 孝宗 传光宗 金人 占定 半边 江山 光宗 传到 当今 天子 庆元 皇帝 手里 这位 宰相 日子 摇头 郭啸天 乡下 地方 尽说 无妨 临安 城里 惹祸 宰相 一个 大大的 奸臣 祸国殃民 本事 秦桧 拜把子 兄弟 张十五 眼前 胆小 言无忌 杯酒 说道 叨扰 两位 小人 一句 相劝 两位 血性汉子 说话 行事 小心 惹祸 时势 老百姓 口苦 日子 山外 青山 楼外楼 西湖 歌舞 几时休 暖风 熏得 游人 杭州 汴州 杨铁心 问道 四句 故事 十五道 故事 宋君臣 只顾 西湖 边上 饮酒作乐 观赏 歌舞 打算 世世代代 杭州 当作 京师 再也 不想 收复失地 汴梁 旧京 张十五 醺醺 大醉 这才 告辞 脚步 踉跄 向东 临安 口中 兀自 喃喃地 岳飞 满江红 句子 靖康 犹未雪 臣子 郭啸天 酒钱 杨铁心 回家 两人 比邻而居 行得 十余丈 家门口 郭啸天 浑家 李氏 赶鸡入 哥儿俩 叔叔 嫂子 我家 吃饭 一只 杨铁心 今晚 又扰 嫂子 家里 鸡鸭 白费 粮食 舍得 一只 两只 李氏 嫂子 心好 鸡鸭 养大 心来 杨铁心 哭哭啼啼 好笑 今儿 打些 野味 明儿 大哥 大嫂 郭啸天 兄弟 今儿 哥儿 远处 几人 大声 吆喝 快给我 站住 黑影 晃动 一人 闪进 林中 光照 身上 杨二人 分明 大奇 那人撑 两根 拐杖 却是 村头 酒店 跛子 曲三 只见 地下 一撑 发出 一声 飞身 树后 这一下 高明 之极 轻身 功夫 郭杨 两人 不约而同 伸出 一手 互握 惊诧 万分 牛家村 三年 不知 跛子 曲三 武功 长草 之中 稍动 脚步 声响 三个 追到 林边 低声 商议 几句 一步步 踏入 林来 三人 武官 装束 手中 青光 闪烁 各握 单刀 一人 大声 喝道 跛子 老子 见到 跪下 投降 三只 树后 不动 三名 武官 挥动 单刀 呼呼 渐渐 走近 间波 一声 曲三右 树后 正中 一名 武官 胸口 势道 武官 地下 两名 武官 挥动 单刀 向曲 曲三右 地下 一撑 左跃开 数尺 避开 单刀 左拐 一名 武官 面门点 武官 武功 自不弱 挺刀 曲三 不让 单刀 碰到 拐杖 左拐 收回 右拐 另一名 武官 腰间 只见 双拐 此起彼落 快速 无伦 一拐 支持 身子 只余一 拐空 对敌 丝毫 落下风 杨二人 背上 负着 包裹 累赘 一会 一名 武官 钢刀 包裹 之上 当啷 一声 包裹 破裂 无数 物事 曲三乘 欢喜 大叫 之际 拐挥出 一声 武官 顶门 中拐 余下 人大 转身 脚步 甚快 数丈 曲三 右手 怀中 跟着 扬手 月光 只见 一块 圆盘 黑物 轻响 嵌入 武官 后脑 武官 惨声长 单刀 脱手 双手 乱舞 仰天 缓缓 倒下 扭转 几下 眼见 不活 杨二人 跛子 曲三于 连毙 三人 武功 之高 生平 从来未 心中 怦怦 大气 喘上 一口 击杀 命官 犯下 滔天大罪 发觉 杀人灭口 兄弟俩 万万 敌手 转过身 缓缓 说道 郭兄 杨兄 杨二人 大吃一惊 只得 草丛 中长 身而起 手中 紧紧 握住 猎叉 杨铁心 郭啸天 手中 猎叉 一眼 随即 踏上 两步 曲三 微笑 杨兄 杨家枪 这猎 义兄 一对 短戟 兵刃 可太 身前 好好 义气 杨铁心 说穿 心事 手足无措 曲三 郭兄 双戟 在手 两位 合力 斗得 郭啸天 摇头 斗不过 兄弟俩 有眼无珠 老兄 牛家村 同住 一年 有余 全没 老兄 身怀绝技 高手 曲三是 一年 因死 妻子 不愿 原地 牛家村 来开 家小 酒店 曲三 摇摇头 口气 说道 双腿 说得上 绝技 绝技 显得 意兴阑珊 当年 料理 三个 宫中 侍卫 用得着 费事 不中用 不中用 杨二人 对望一眼 接口 三道 两位 跛子 一个 尸首 行不行 杨二人 对望一眼 杨铁心 二人 用猎 地下 大坑 三具 尸体 搬入 一具 杨铁心 黑色 盘形 之物 兀自 武官 后脑 数寸 右手 运劲 着手 重甸甸 铁铸 八角形 八卦 尸身 拭去 血渍 交给 曲三 三道 劳驾 八卦 收入 囊中 外袍 地下 捡起 散落 各物 放入 包起 杨二人 搬土 掩埋 尸首 斜眼 三个 长长的 卷轴 另有 亮晶晶 金器 玉器 曲三 留下 一把 金壶 一只 金杯 包入 交给 杨二人 物事 临安 皇宫 中盗 皇帝 害苦 百姓 百姓 身上 搜刮 金银 算不得 贼赃 两件 金器 送给 两位 杨二人 听说 竟敢 皇宫 劫盗 大内 财物 惊呆 伸手 曲三 厉声 两位 不肯 郭啸天 无功不受禄 东西 今晚 兄弟俩 自然 泄漏 一字 半句 老兄 放心 三道 我怕 泄漏 秘密 二人 底细 早就 清清楚楚 今晚 岂能 二位 活着 离开 郭兄 梁山泊 好汉 地佑星 赛仁贵 郭盛 后代 家传 只不过 变长 化单 杨兄 祖上 杨再兴 岳爷爷 麾下 名将 二位 忠义 北方 沦陷 二人 流落江湖 八拜 为交 义结金兰 牛家村 居住 杨二人 身世 来历 一清二楚 更是 惊讶 只得 点头称是 三道 二位 祖宗 郭盛 杨再兴 本来 绿林好汉 归顺 朝廷 为大宋 出力 劫盗 不义之财 祖宗 干过 两件 金器 收是 不收 杨铁心 寻思 不收 得罪 双手 接过 说道 多谢 曲三霁然色 提起 包裹 背上 说道 回去 三人 出林 三道 今晚 皇帝 所画 两幅 一张 家伙 皇帝 翎毛 丹青 瘦金体 书法 委实 妙绝 天下 杨二人 翎毛 丹青 瘦金体 书法 唯唯 而应 一会 杨铁心 轻声道 日间 说话 言道 我大宋 半壁江山 这道 皇帝 手里 东西 老兄 甘冒 地到 皇宫 曲三 微笑 郭啸天 这道 皇帝 画得 一笔 好画 写得 一手 好字 聪明 得紧 可惜 专心 皇帝 小时候 爹爹 一个 文学 只能 专心 一件 一事无成 三道 资质 寻常 天下 尽有 聪明绝顶 文才 武功 琴棋书画 算数 韬略 医卜 星相 奇门 五行 无一 无一不精 只不过 见不着 抬起头来 天边 一轮 残月 长叹一声 月光 映照 杨二人 眼角 渗出 几点 泪水 杨二人 回到 家中 两件 金器 深深 埋入 后院 地下 妻室 吐露 半句 两人 一如 往日 耕种 打猎 为生 习练 兵器 拳脚 两人 提及 此事 两人 酒店 对饮 几壶 跛子 曲三 酒来 蚕豆 花生 下酒 之物 一跷 一拐 走开 坐在 门边 大江 默默 心事 那晚 林中 夜斗 不曾有过 回事 杨二人 照样 会钞 一如 往日 眼色 带上 几分 敬畏 之意 五六岁 小女儿 捉鸡 追狗 爹爹 胡言乱语 一番 曲三 妻室 照顾 一个 小女儿 着实 不易 秋尽冬 冷似 一日 晚间 半夜 北风 起雪来 第二日 下得 银絮 飞天 琼瑶 匝地 四下里 白茫茫 杨铁心 浑家 包氏 今晚 整治 酒肴 义兄 夫妇 饮酒 赏雪 饭后 两个 葫芦 村头 酒店 沽酒 一对 板门 紧紧 酒帘 杨铁心 几下 曲三哥 三斤 应声 走到 窗边 一张 桌上 灰尘 积得 厚厚的 心想 几天 村头 曲三 在家 可别 小女儿 坐在 地下 口中 儿歌 玩弄 泥巴 杨铁心 心想 女孩 癫癫 傻傻 平日 胡说八道 料想 问不出 冲风 冒雪 五里 红梅 村去 一只 回到 家来 浑家 整治 浑家 包氏 闺名惜 红梅 私塾 教书先生 女儿 杨铁心 一年 当晚 包氏 一只 白菜 豆腐 粉丝 放入 一只 瓦罐 炭火 再切 一盘 腊鱼 腊肉 傍晚 隔壁 郭啸天 夫妇 饮酒 郭啸天 欣然 浑家 李氏 因有 身孕 几日 呕酸 东西 推辞 身子 壮健 无别碍 李氏 名单 一个 萍字 包惜弱 有如 姊妹 两人 房中 一阵子 包惜弱 热茶 这才 回家 张罗 丈夫 郭啸天 炭炉 桌上 两人 吃喝 郭啸天 弟妹 快来 杨二人 交好 豪杰 之士 乡下人 讲究 男女 避嫌 礼法 包惜弱 微笑 答应 炭炉 中添 一只 酒杯 坐在 丈夫 下首 郭啸天 三人 热闹 回家 妻子 杨二人 多久 桌大骂 李萍 哥儿俩 生气 杨铁心 临安 朝廷 混帐 郭啸天 昨儿 众安 桥头 喜雨 茶楼 听人 谈到 宰相 那人 有头有尾 想来 不假 一个 官员 上书 禀报 公文 注明 并献 字样 这贼 宰相 压根儿 文书 岂有此理 杨铁心 皇帝 宰相 宰相 官吏 临安 涌金 门外 黄大哥 一日 山边 砍柴 见到 官兵 一群 官儿 却是 丞相 百官 郊外 游乐 自管 砍柴 理会 竹篱茅舍 绝妙 山野 风光 可惜 鸡鸣犬吠 之声 说完 草丛里 汪汪 汪地 包惜弱 这狗儿 倒会 凑趣 杨铁心 凑趣 那狗子 一会 草丛 公鸡 啼声 跟着 一个 草丛 狗子 公鸡 临安 堂堂 府尹 赵大人 包惜弱 直叫 郭啸天 赵大人 这一扮 狗叫 鸡啼 高升 杨铁心 自然 四人 一会 门外 雪下 热酒 下肚 四人 身上 暖烘烘 李萍 有孕 凑趣 略略 沾唇 东边 路上 传来 一阵 踏雪 之声 脚步 起落 极快 四人 转头 望去 道士 那道士 头戴 斗笠 身披 蓑衣 全身 白雪 背上 斜插 一柄 长剑 黄色 风中 笔直 扬起 风雪 满天 大步 独行 气概 非凡 郭啸天 道士 身上 功夫 好汉 没个 名堂 不好 请教 杨铁心 不错 几杯 交交 朋友 两人 生性 好客 离座 出门 那道人 晃眼 十余丈 发足 奔跑 轻功 所属 罕见 两人 一眼 惊异 杨铁心 扬声大 道长 请留步 喊声 那道人 倏地 回身 点头 杨铁心 天冻 大雪 道长 何不 几杯 解解 寒气 那道人 冷笑 一声 健步如飞 来到 门外 脸上 竟尽 鄙夷不屑 之色 冷然 留步 居心 爽爽快快 杨铁心 心想 好意 喝酒 道人 恁地 无礼 扬头 不睬 郭啸天 抱拳 兄弟 正自 烤火 饮酒 道长 冒寒 独行 斗胆 相邀 冲撞 莫怪 那道人 双眼 一翻 声道 好好 喝酒 喝酒 大踏步 杨铁心 更是 气恼 伸手 抓住 左腕 往外 一带 喝道 请教 道长 法号 忽觉 那道人 滑如游 掌中 溜出 不妙 正待 退开 手腕 一紧 道人 抓住 霎时之间 便似 一个 铁圈 急忙 运劲 抵御 整条 右臂 酸麻 无力 腕上 奇痛 彻骨 郭啸天 义弟 满脸 涨得 通红 吃亏 心想 本是 好意 结交 贸然 动手 得罪 江湖 好汉 抢过去 道长 那道人 冷笑 两声 放脱 杨铁心 手腕 堂上 大模大样 居中 说道 两个 明明 山东 大汉 假扮 临安 乡农 可惜 满口 山东 改不了 庄稼汉 怎会 功夫 说话 山东 口音 杨铁心 走进 内室 抽屉 里取 匕首 放在 怀里 这才 回到 外堂 杯酒 一杯 默然不语 那道人 门外 大雪 饮酒 说话 微微 冷笑 郭啸天 满脸 敌意 疑心 酒中作 手脚 取过 道人 面前 酒杯 杯中酒 一口 说道 酒冷得 道长 一杯 一杯 那道人 接过 一口 说道 酒里 蒙汗药 杨铁心 焦躁 发作 好意 饮酒 起心害 道人 说话 不三不四 没人 那道人 一声 理会 取过 酒壶 自斟自酌 连干 三杯 蓑衣 斗笠 地下 郭两人 细看 道人 只见 三十 年纪 双眉斜 脸色红润 方面大耳 目光炯炯 跟着 背上 革囊 侧过 一倒 一声 郭二人 起身 革囊 滚出来 竟是 血肉模糊 人头 包惜弱 惊叫 逃进 内堂 李萍 杨铁心 伸手 怀中 匕首 那道人 革囊 一抖 跌出 两团 血肉模糊 东西 一块 一块 像是 猪心 猪肝 便是 人心 人肝 杨铁心 喝道 匕首 出怀 疾向 那道人 胸口 刺去 道人 冷笑 鹰爪 动手 左手掌 手腕 一击 杨铁心 腕上 一阵 酸麻 五指 无力 匕首 夹手 夺去 郭啸天 看得 大惊 心想 义弟 名将 家传 武艺 平日 较量 武功 稍逊 一筹 道人 竟视 有如 无物 一手 江湖 相传 空手 白刃 绝技 功夫 听闻 没见 惟恐 义弟 受伤 俯身 举起 板凳 只待 道人 匕首 刺来 举凳 那道人 理会 匕首 一阵 人心 人肝 切成 碎块 一声 长啸 声震 屋瓦 提起 右手 挥掌 一声 桌上 酒杯 菜盆 人头 手掌 击得 头骨 碎裂 桌子 裂开 一条 大缝 两人 正自 惊疑 那道人 喝道 无耻 鼠辈 今日 大开杀戒 杨铁心 怒极 忍耐 抄起 屋角 铁枪 门外 雪地 来来来 杨家枪 厉害 那道人 微微 冷笑 说道 公门 鼠辈 配使 杨家枪 纵身 出门 郭啸天 回家 双戟 那道人 空手 袍袖 朔风 猎猎 作响 杨铁心 喝道 拔剑 那道人 两个 鼠辈 一齐 道爷 空手 对付 杨铁心 使个 旗鼓 一招 毒龙 出洞 枪上 红缨 抖动 卷起 大枪 道人 心口 那道人 赞道 斜身 避向 左侧 左掌翻 径自 枪头 杨铁心 这杆 下过 苦功 祖传 技艺 杨家枪 非同小可 北宋 山后 杨老令公 杨六郎 已久 枪法 失传 不去 南宋 名将 杨再兴 家传 杨家枪 当年 杨再兴 一杆 铁枪 率领 三百 宋兵 小商 大战 金兵 四万 奋力 杀死 敌兵 二千余名 刺杀 万户 长撒八 千户 百户 一百余 其时 金兵 箭来 如雨 身上 每中 一枝 敌箭 随手 折断 箭杆 再战 马陷 这才 力战 殉国 金兵 焚烧 尸身 竟烧 出铁 箭头 二升 有余 这一仗 金兵 杨家枪 法威震 中原 杨铁心 不及 先祖 威勇 枪法 只见 枪尖 银光闪闪 枪缨 红光 点点 一路 枪法 杨铁心 那枪 使发 招数 灵动 变幻 巧妙 那道人 随枪 趋避 进退 刺得 半分 七十二路 杨家枪 法堪堪 杨铁心 不禁 焦躁 铁枪 回身 那道人 发足 追来 杨铁心 大喝一声 双手 抓住 枪柄 陡然间 纵臂 回身 出枪 直刺 人面 一枪 刚猛 狠疾 杨家枪 法中 临阵 破敌 屡杀 大将 一招 回马枪 当年 杨再兴 身为 大盗 降宋 岳飞 对敌 曾以 一招 刺杀 岳飞 之弟 岳翻 端的 厉害 无比 那道人 一瞬间 枪尖 已到 面门 叫声 枪法 双掌 合拢 一声 枪尖 双掌 之间 杨铁心 猛力 挺枪 往前 疾送 纹丝不动 大惊 奋起 平生 之力 往里 回夺 枪尖 一座 铁山 之中 再拉得 回来 涨红了脸 连夺 三下 枪尖 始终 脱不出 双掌 挟持 那道人 哈哈大笑 提起 右掌 快如闪电 枪身 一击 一声 杨铁心 只觉 虎口 剧痛 急忙 撒手 铁枪 落雪 那道人 杨家枪 得罪 请教 贵姓 杨铁心 惊魂未定 随口 答道 草字 铁心 道人 杨再兴 杨将军 阁下 祖上 杨铁心 曾祖 那道人 肃然起敬 抱拳 适才 误以为 两位 乃是 歹人 多有 得罪 竟是 忠良 失敬 请教 这位 高姓 郭啸天 两人 身边 说道 贱字啸天 杨铁心 义兄 梁山泊 好汉 赛仁贵 郭盛 头领 后人 那道人 贫道 可真 鲁莽 一礼 郭啸天 杨铁心 躬身 还礼 说道 道长 入内 三杯 杨铁心 拾起 铁枪 道人 正要 两位 喝个 痛快 包惜弱 李萍 挂念 杨铁心 争斗 提心吊胆 地站 门口 观看 三人释 兵言欢 心中 大慰 忙入 整治 杯盘 三人 坐定 杨二人 请教 道人 法号 道人 贫道 丘名 处机 杨铁心 一声 起身 郭啸天 一惊 莫不是 长春 丘处机 这是 道侣 相赠 贱号 贫道 愧不敢当 郭啸天 全真 大侠 长春 有幸 相见 两人 丘处机 急忙 今日 手刃 一个 奸人 官府 追得 甚紧 两位 相招 饮酒 帝王 两位 不似 寻常 乡民 疑心 郭啸天 兄弟 性子 急躁 进门 时试 道长 一手 道长 起疑 丘处机 常人 手上 哪有 劲力 两位 官府 鹰犬 乔装改扮 等候 捉拿 贫道 适才 言语 无礼 委实 鲁莽 得紧 杨铁心 不知 三人 哈哈大笑 三人 几杯酒 丘处机 指着 地下 血肉模糊 人头 说道 名叫 王道乾 汉奸 去年 皇帝 向金主 庆贺 生辰 金人 勾结 图谋 侵犯 江南 贫道 十多天 郭二人 久闻 长春 丘处机 武功 卓绝 侠义 热肠 为国 除奸 更是 敬仰 两人 讨教 功夫 丘处机 直言无隐 杨家枪 法乃 兵家 绝技 用于 战场 冲锋陷阵 所向无敌 当者 披靡 江湖 武学 高手 对敌 尚有 丘处机 内外 兼修 武功 虽未 登峰造极 已臻 甚高 境界 杨铁心 数十招 之多 却是 丘处机 出手不凡 暗暗 称奇 有意 引得 七十二路 枪法 确知 杨家 嫡传 真的 对敌 数招 之间 铁枪 震飞 这路 枪法 招数 本意 用于 步战 更求 变化 拘泥 成法 郭二人 听得 不住 点头称是 杨家枪 传子 传女 绝艺 丘处机 所知 虽博 不明 枪法 精奥 杨铁心 请教 几招 三人 酒酣耳热 言谈 投机 杨铁心 兄弟两人 得遇 道长 平生 幸事 道长 舍下 盘桓 几日 丘处机 答话 脸色 一变 说道 有人 遇上 无论如何 杨二人 点头 答应 丘处机 俯身 拾起 人头 开门 出外 身上 枝叶 之间 杨二人 举动 奇特 茫然不解 门外 朔风 虎虎 一阵 西面 传来 隐隐 马蹄 之声 杨铁心 道长 耳朵 好灵 这位 道长 武功 高得 跛子 曲三 相比 不知 一会 马蹄声 渐近 只见 风雪 十余 急奔 乘客 黑衣 黑帽 直冲 门前 当先 一人 勒马 足迹 到此为止 有人 过手 翻身 下马 察看 雪地 足迹 为首 那人 进屋 两人 下马 杨家 大门 树上 一物 一声 头顶 这一掷 劲力 奇大 那人 此物 脑浆 迸裂 众人 一阵 大哗 几个 围住 大树 一人 拾起 之物 惊叫 王大人 为首 抽出 长刀 大声 吆喝 十余 大树 团团围住 一声 口令 五个 弯弓 搭箭 五枝 羽箭 齐向 丘处机 射去 杨铁心 提起 铁枪 出屋 助战 郭啸天 一把 低声 道长 别出去 寡不敌众 出手 声甫 只见 树上 一枝 羽箭 飞将 却是 丘处机 闪开 四箭 接住 一箭 甩手 手法 投掷 一声 一名 黑衣人 中箭落马 滚入 草丛 丘处机 拔剑 跃下 剑光 起处 两名 黑衣人 已然 中剑 为首 黑衣人 刷刷 三枝 短弩 随手 打出 挥动 长刀 勒马 丘处机 剑光 连闪 两人 中剑 落马 杨铁心 张大 口合 不拢 心想 十年 武艺 这位 道爷 出剑 快法 抵挡 没能 手下 容情 早就 性命 丘处机 如风 骑马 使刀 那人 相斗 那使 一柄 遮架 甚为 威猛 下属 纷纷 上前 助战 再斗 一阵 郭杨 两人 丘处机 军官 缠斗 空儿 或出 掌击 杀伤 一人 用意 似要 尽数 歼灭 生怕 余党 一哄而散 不易 追杀 过半 顿饭 时间 剩下 六七名 那使 唿哨 拨转 马头 丘处机 左掌 前探 拉住 马尾 手上 使劲 身子 倏地 跃上 马背 一剑 后心 插进 前胸 丘处机 抛下 敌尸 控马 四下 兜截 赶杀 铁蹄 翻飞 剑光 闪烁 惊呼 叫声 一个个 尸首 倒下 鲜血 白雪皑皑 大地 片片 染红 丘处机 提剑 四顾 唯见 一匹 匹空马 四散 狂奔 一名 敌人 剩下 哈哈大笑 杨二人 招手 杀得 痛快 杨二人 开门 神色 惊魂未定 郭啸天 道长 丘处机 身上 郭啸天 持刀 身上 掏出 一件 公文 抽出 却是 那装 狗叫 临安 府尹 所发 密令 内称 金国使者 临安 坐索 杀害 王道乾 凶手 捕快 会同 大金国 人员 克日 凶手 归案 郭啸天 正看 愤怒 杨铁心 手里 几块 尸身 腰牌 刻着 金国 文字 这批 黑衣人 好几 竟是 金兵 郭啸天 敌兵 境内 任意 逮人 杀人 我大宋 官府 竟要 使者 号令 世界 杨铁心 宋皇帝 向金国 称臣 文武百官 金人 奴才 丘处机 地道 出家人 本来 滥杀 一见 害民 奸贼 敌国 仇寇 贫道 手下留情 杨二人 齐声 杀得 杀得 小村 居民 本少 天寒 大雪 无人 外出 有人 瞧见 打斗 回家 闭户 不出 敢过来 察看 询问 杨铁心 取出 锄头 铁锹 三人 十余具 尸首 埋入 江边 土中 丘处机 包惜弱 右手 手腕 脉搏 大声 恭喜 恭喜 杨铁心 愕然 问道 包惜弱 一声 三个 男人 周身 不禁 害羞 李萍 进屋 斟茶 丘处机 微笑 尊夫人 有喜 杨铁心 喜道 丘处机 贫道 平生 所学 稍足 自慰 三件 第一 医道 炼丹 药石 所知 第二 几首 歪诗 第三 几手 章法 武艺 郭啸天 道长 惊人 武功 仍算 章法 兄弟俩 只好 小孩儿 竹棒 三人 扫雪 灭迹 扫雪 完毕 后入 重整 杯盘 丘处机 今日 大畅 心怀 意兴 甚豪 杨铁心 想到 妻子 身孕 笑吟吟 地合 不拢 口来 心想 这位 道长 文武双全 说道 大嫂 孩子 道长 两个 名字 丘处机 微一 沉吟 说道 郭大哥 孩子 郭靖 二哥 孩子 叫作 杨康 男女 可用 两个 名字 郭啸天 道长 靖康 之耻 记得 二帝 之辱 丘处机 伸手 入怀 摸出 短剑 放在 桌上 长短 形状 完全相同 绿皮 金吞口 乌木 剑柄 杨铁心 匕首 匕尖 一把 短剑 剑柄 上刻 郭靖 两字 一把 短剑 上刻 杨康 两字 杨二人 匕如飞 常人 写字 明白 丘处机 已刻 客中 没带 东西 短剑 留给 两个 出世 孩子 郭杨 两人谢 接过 抽剑 出鞘 只觉 冷气 森森 剑刃 锋利 之极 丘处机 短剑 无意之中 得来 锋锐 但剑刃 贫道 不合 将来 孩子 可用 杀敌 防身 十年 贫道 如尚 苟活 人世 必当 传授 孩子 几手 功夫 杨二人 大喜 称谢 丘处机 金人 强据 北方 百姓 暴虐 残杀 民心 不附 势必 两位 好自为之 举杯 饮尽 开门 走出 杨二人 待要 相留 迈步 如飞 雪地 郭啸天 高人 侠士 飘忽 今日 有幸 会见 讨教 却是 无缘 杨铁心 大哥 道长 今日 杀得 痛快 闷气 短剑 拔出 摩挲 剑刃 忽道 大哥 主意 成不成 郭啸天 杨铁心 孩子 男儿 结为 兄弟 女儿 结为 姊妹 郭啸天 一男一女 结为 夫妻 两人 伸手 相握 哈哈大笑 李萍 包惜弱 内堂 事乐成 样子 杨铁心 两位 夫人 心中 乐意 不住 叫好 杨铁心 短剑 掉换 文定 之礼 兄弟 姊妹 换回来 夫妻 郭啸天 对不起 两柄 哥哥 家里 包惜弱 说不定 兄弟 家里 杨二人 换过 短剑 交由 李萍 包惜弱 郭氏 夫妇 告别 回家 其时 指腹为婚 事属 寻常 两个 孩子 娘胎 父母 已代 定下 终身大事 血迹 直通 屋后 林中 雪地 上留 有人 爬动 痕迹 包惜弱 愈加 起疑 跟着 血迹 走进 松林 一座 只见 地下 黑黝黝 一团 物事 包惜弱 走近 看时 赫然 尸首 身穿 黑衣 便是 捉拿 丘处机 人众 受伤 未死 正待 回去 叫醒 丈夫 掩埋 转念 鬼使神差 有人 撞见 鼓起勇气 尸首 想拉入 草丛 之中 藏起 丈夫 伸手 一拉 尸首 扭动 跟着 呻吟 包惜弱 这一下 魂飞天外 只道 僵尸 作怪 转身 双脚 地上 再也 动弹不得 半晌 尸首 扫帚 轻轻 碰触 尸首 呻吟 声音 甚为 微弱 此人 未死 定睛 看时 背后 肩头 一枝 狼牙 利箭 肉里 箭枝 上染满 血污 天空 雪花 兀自 飘下 全身 已罩 薄薄 一层 白雪 只须 半夜 冻死 自幼 心地 仁慈 见到 受了伤 麻雀 田鸡 虫豸 蚂蚁 带回家 妥为 喂养 伤愈 再放回 田野 医治 不好 整天 性情 不改 屋子里 养满 诸般 小禽 小兽 父亲 屡试不第 学究 按着 性子 取个 名字 叫作 惜弱 红梅 包家 公鸡 老母鸡 特多 包惜弱 饲养 鸡雏 不肯 宰杀 一只 父母 家里 小鸡 享天 寿终正寝 杨家 杨铁心 这位 如花似玉 妻子 甚为 怜爱 事事 性子 杨家 后院 自然 小鸟 小兽 天下 杨家 小鸡 小鸭 慢慢 大鸡大 未久 家中 尚未 老鸡 老鸭 大势所趋 日后 这人 奄奄一息 地伏 雪地 之中 慈心 登起 明知 此人 好人 眼睁睁 地见 痛死 冻死 无论如何 不忍 微一 沉吟 急奔 回屋 叫醒 丈夫 商量 无奈 杨铁心 大醉 沉睡 推他 包惜弱 心想 丈夫 止血 金创药 小刀 碎布 半壶 热酒 那人 不动 包惜弱 半壶 热酒 慢慢 灌入 嘴里 自幼 医治 小鸟 小兽 医伤 有点儿 门道 一箭射 甚深 胡乱 拔出 喷血 毙命 拔出 咬紧牙关 锋利 小刀 割开 肌肉 箭杆 奋力 提出 惨叫 一声 创口 鲜血 直喷 只射 包惜弱 胸前 衣襟 全是 血点 那枝箭 终于 拔出 包惜弱 心中 突突 止血 创口 布条 紧紧 扎住 一阵 悠悠 疲弱 无力 出声 包惜弱 得手 酸足 实在 扶不动 这大 男人 灵机一动 回家 门板 人拉到 雪地 拖动 门板 雪车 回家 放入 柴房 半日 心神 方定 换下 污衣 洗净 手脸 瓦罐 中倒 一碗 适才 喝完 鸡汤 一手 烛台 柴房 汉子 呼吸 细微 并未 断气 包惜弱 心中 甚慰 鸡汤 那人 半碗 剧烈 咳嗽 包惜弱 一惊 烛台 烛光 下见 这人 眉清目秀 鼻梁 高耸 竟是 相貌 俊美 青年 男子 脸上 一热 左手 微颤 晃动 烛台 几滴 烛油滴 脸上 睁开眼 蓦见 一张 芙蓉 秀脸 双颊 晕红 星眼 如波 眼光 怜惜 羞涩 光景 宛在 不禁 看得 包惜弱 低声 好些 伸手 要接 手上 无力 险些 全倒 身上 包惜弱 抢住 汤碗 救人 要紧 只得 调羹 一口 一口 那人 鸡汤 眼中 渐渐 现出 光彩 凝望 显是 不胜感激 包惜弱 不好意思 几捆 稻草 持烛 回房 这一晚 再也 安稳 几个 噩梦 忽见 丈夫 挺枪 柴房中 那人 提刀 丈夫 追逐 四面 深渊 无处 逃避 几次 从梦中 惊醒 身上 冷汗 天明 起身 丈夫 早已 只见 铁枪 磨刀石 磨砺 枪头 包惜弱 想起 夜来 梦境 心惊胆战 柴房 推开 门来 一惊 剩乱 一堆 那人 不知去向 后院 只见 后门 虚掩 雪地 赫然 一行 有人 连滚带爬 向西 痕迹 痕迹 不觉 怔怔 地出 良久 一阵 寒风 扑面 忽觉 腰酸 骨软 困倦 回到 前堂 杨铁心 已烧 白粥 放在 桌上 不错 包惜弱 丈夫 怀孕 特加 体惜 一笑 端起 昨晚 告知 丈夫 嫉恶如仇 定会 赶去 救人 绝口不提 这日 午后 杨铁心 妻子 闲谈 说起 卖酒 出了门 留下 小女儿 孤苦 可怜 照顾 包惜弱 心下 不忍 糕饼 前去 探视 好几个 时辰 说道 女孩 没饭 身孕 无力 照顾 带到 红梅 娘家 母亲 照看 几天 等曲 回家 送回 杨铁心 曲三 英雄 能助 一臂之力 这日 杨氏 夫妇 晚饭 包惜弱 丈夫 缝套 衫裤 杨铁心 打好 两双 草鞋 草鞋 挂到 墙上 日间 耕田 犁头 包惜弱 犁头 损啦 明儿 东村 张木儿 一斤 半铁 一打 包惜弱 杨铁心 妻子 说道 衣衫 身子 孩子 好好儿 歇歇 衣裳 包惜弱 转过 头来 一笑 不停 杨铁心 轻轻 针线 包惜弱 这才 懒腰 熄灯 上床 午夜 包惜弱 朦胧 忽觉 丈夫 起身 一惊 远处 隐隐 马蹄 之声 声音 是从 西面 过得 一阵 东边 传来 马蹄声 北面 南面 蹄声 包惜弱 起身 四面 马来 杨铁心 穿衣 片刻之间 四面 蹄声 越来越近 村中犬儿 吠叫 杨铁心 围住 包惜弱 惊道 干什么 杨铁心 妻子 丘处机 所赠 短剑 放在 怀里 防身 墙上 摘下 一杆 铁枪 握住 东南西北 人声 马嘶 已乱成 杨铁心 推开 窗子 外望 只见 大队 兵马 村子 团团围住 兵丁 手里 高举 火把 七八名 武将 往来 奔驰 兵丁 齐声 叫喊 捉拿 反贼 莫让 反贼 杨铁心 寻思 捉拿 曲三 曲三 已有 几个 村里 幸好 武功 再强 敌不过 兵马 一名 武将 高声 郭啸天 杨铁心 两名 反贼 快快 受缚 纳命 杨铁心 大吃一惊 包惜弱 脸色苍白 杨铁心 低声 官家 不知 何事 诬害 良民 官府 只好 逃命 你别 这杆 定能 冲出重围 一身 武艺 江湖 闯荡 临危 壁上 摘下 长弓 斜负 背上 腰间 箭袋 握住 妻子 右手 包惜弱 我来 收拾 东西 杨铁心 收拾 统通 包惜弱 心中 一酸 垂下 泪来 声道 这家 杨铁心 性命 重整家园 包惜弱 小鸡 小猫 杨铁心 孩子 还顾 一顿 安慰 官兵 怎会 小鸡 小猫儿 为难 包惜弱 言方 窗外 火光 闪耀 众兵 点燃 两间 草房 两名 兵丁 高举 火把 杨家 屋檐 口中 大叫 郭啸天 杨铁心 两个 反贼 牛家村 烧成 白地 杨铁心 怒气 填膺 开门 走出 大声 喝道 杨铁心 干什么 两名 兵丁 吓了一跳 丢下 火把 转身 火光 一名 武官 拍马 走近 杨铁心 官去 拿下 四五名 兵丁 两旁 拥上 杨铁心 倒转 枪来 一招 白虹 经天 三名 兵丁 扫倒 一招 春雷 震怒 枪柄 挑起 一兵 人堆 喝道 先得 武官 大胆 反贼 竟敢 拒捕 口中 叫骂 畏惧 武勇 逼近 身后 另一名 武官 好好 老爷 过堂 免得 加重 罪名 公文 杨铁心 拿来 武官 一名 郭犯 郭啸天 窗口 半身 弯弓 搭箭 喝道 郭啸天 箭头 对准 武官 心头 发毛 只觉 背脊 一阵阵 凉气 放下 我读 公文 郭啸天 厉声 快读 武官 无奈 公文 大声 读道 临安 牛家村 村民 郭啸天 杨铁心 二犯 勾结 巨寇 图谋不轨 严审 法办 郭啸天 衙门 公文 武官 临安 府尹 大人 手谕 杨二人 一惊 厉害 丘道长 杀死 官差 事发 郭啸天 首告 凭据 武官 只管 到府 堂上 分辩 杨铁心 临安 专害 无辜 好人 可不 弯弓 搭箭 箭尖 对准 武官 领队 武官 抗命 拒捕 罪加一等 杨铁心 转头 妻子 穿件 衣服 我夺 先射 将官 兵卒 自然 松手 放弦 声响 箭发 流星 正中 武官 胸膛 武官 一声 下马 兵丁 齐声 发喊 另一名 武官 反贼 兵丁 纷纷 杨二人 连珠 转瞬间 射倒 六七名 兵丁 官兵 势众 武官 督率 下冲 两家 门前 杨铁心 大喝一声 冲出 铁枪 起处 官兵 惊呼 倒退 纵到 一个 白马 武官 身旁 枪刺 武官 举枪 挡架 杨家枪 变化 灵动 杨铁心 枪杆 下沉 武官 举枪 挑起 武官 一个 筋斗 下马 杨铁心 枪杆 地下 一撑 飞身 跃上 马背 双腿 那马 一声 长嘶 火光 中向 屋门 杨铁心 枪刺 门边 一名 兵丁 俯身 伸臂 包惜弱 抱上 马背 高声 大哥 跟着 我来 郭啸天 舞动 双戟 保护 妻子 李萍 从人 丛中 冲杀 官兵 二人 势凶 拦阻 不住 纷纷 放箭 杨铁心 纵马 李萍 身旁 大嫂 上马 一跃 下马 李萍 急道 使不得 杨铁心 一把 马背 兄弟两人 马后 战且 落荒而逃 不多时 喊声 大作 一彪 军马 冲杀 杨二人 暗暗 叫苦 待要 觅路 奔逃 羽箭 嗖嗖 包惜弱 一声 坐骑 中箭 马背上 两个 女子 下马 杨铁心 大哥 你护 提枪 往人 丛中 冲杀 十余名 官兵 排成一列 手挺 长矛 对准 杨铁心 齐声 呐喊 郭啸天 眼见 官兵 势大 心想 兄弟二人 逃命 不难 妻子 无论如何 救不出 犯法 白自在 送命 临安 分辩 上次 丘处机 道长 官兵 和金兵 放走 一个 死无对证 官府 官差 金兵 兄弟 纵声 兄弟 别杀 杨铁心 一呆 拖枪 回来 带队 军官 下令 停箭 兵士 四下 围住 兵器 弓箭 不死 杨铁心 大哥 别中 奸计 郭啸天 摇摇头 双戟 地下 杨铁心 爱妻 花容 失色 心下 不忍 口气 铁枪 弓箭 地下 杨二人 兵器 刚一离 十余枝 长矛 矛头 刺到 四人 身旁 八名 士兵 两个 服侍 一个 四人 缚住 杨铁心 冷笑 昂头 不理 带队 军官 举起 马鞭 一鞭 杨铁心 脸上 大胆 反贼 不怕死 这一鞭 自额 长长 一条 血痕 杨铁心 怒道 名字 军官 怒气 更炽 鞭子 如雨 老爷 行不改姓 改名 姓段 天德 上天 好生之德 天德 记住 阎王 老子 告状 杨铁心 退避 双眼 凝视着 段天德 喝道 老爷 额头 刀疤 脸上 青记 记住 一鞭 包惜弱 丈夫 受苦 哭叫 好人 坏事 干吗 打人 不讲道理 杨铁心 一口 唾沫 一声 正吐 段天德 脸上 段天德 大怒 拔出 腰刀 先毙 反贼 举刀 杨铁心 闪过 身旁 两名 士兵 长矛 抵住 两胁 段天德 一刀 杨铁心 无处 可避 只得 急缩 段天德 几分 武功 一刀 随即 向前 一送 锯齿 这一下 杨铁心 肩上 一道 口子 第二刀 郭啸天 义弟 性命 危殆 纵起 飞脚往 段天德 面门 段天德 一惊 收刀 招架 郭啸天 双手 遭缚 功夫 身子 未落 左足 收转 右足 飞出 段天德 腰里 段天德 剧痛 之下 怒不可遏 乱枪 上头 吩咐 反贼 拒捕 格杀勿论 众兵举 矛齐 郭啸天 接连 踢倒 两兵 双手 遭缚 不灵 身子 长矛 段天德 赶上 手起刀落 一只 右膀 杨铁心 自力 双手 急切 脱缚 突见 义兄 重伤 倒地 心中 急痛 之下 身上 生出 一股 巨力 大喝一声 绳索 绷断 挥拳 打倒 一名 兵士 抢过 一柄 长矛 展开 杨家枪 这时候 一夫 拚命 万夫莫当 长矛 起处 登时 两名 官兵 段天德 势头 不好 先自 退开 杨铁心 豁出去 东挑西 数兵 官兵 凶猛 心下 一声 四下 逃散 杨铁心 追赶 起义 断臂 血流 泉涌 全身 已成 血人 不禁 垂下 泪来 郭啸天 咬紧牙关 兄弟 杨铁心 拚死 郭啸天 杨铁心 衣服 裹伤 段天德 一刀 肩带 胸地 创口 半个 身子 竟是 包扎 郭啸天 悠悠 醒来 兄弟 弟妇 嫂子 气绝 杨铁心 情逾骨肉 惨死 满腔悲愤 脑海中 一闪 想到 两人 结义 那句 誓言 同年 同月同日 抬头 四望 妻子 大嫂 混乱 不知去向 大声 大哥 报仇 矛向 官兵 队里 官兵 列成 队伍 段天德 号令 飞蝗 般射来 杨铁心 不在意 拨箭 疾冲 一名 武官 手挥 大刀 杨铁心 身子 一矮 钻到 马腹 之下 武官 一刀 砍空 正待 回马 后心 长矛 刺进 杨铁心 尸首 跳上 马背 舞动 长矛 官兵 敢接 四下 奔逃 一阵 只见 一名 武官 一个 女子 疾驰 杨铁心 飞身 下马 横矛杆 打倒 一名 兵士 手中 弓箭 火光 看准 武官 坐骑 一箭射 正中 马腿 两人 杨铁心 一箭 射死 武官 只见 女子 地下 挣扎 起身 妻子 包惜弱 乍见 丈夫 又惊又喜 怀里 杨铁心 问道 大嫂 包惜弱 官兵 杨铁心 包惜弱 惊道 官兵 追来 杨铁心 回过头来 果见 一队 官兵 手举 火把 赶来 杨铁心 咬牙 大哥 已死 无论如何 大嫂 保全 郭家 骨血 可怜见 将来 相见 包惜弱 紧紧 搂住 丈夫 脖子 放手 哭道 永远 分离 要死 一块 杨铁心 心中 一酸 抱住 妻子 硬起 心肠 拉脱 双手 挺矛 往前 急追 数十步 回头 一望 只见 妻子 尘埃 之中 官兵 赶到 身旁 杨铁心 袖子 一抹 脸上 泪水 汗水 血水 生死 置之度外 身当 以救义 为先 一阵 夺到 一匹 抓住 一名 官兵 喝问 得知 李氏 纵马 疾驰 道旁 树林 一个 女人 声音 大叫 大嚷 急忙 马头 冲入 林中 只见 李氏 双手 已自脱 两名 兵士 厮打 农家 女子 身子 壮健 武艺 拼命 自有 一股 刚勇 两名 兵士 奈何 杨铁心 打话 冲上去 一矛 一个 两兵 李氏 扶上 坐骑 两人同 回马 找寻 妻子 奔到 包氏 分手 无人 天色 微明 下马 察看 只见 地下 马蹄 杂沓 尚有 人身 拖曳 痕迹 妻子 官兵 杨铁心 跃上 双足 马腹 那马 受痛 腾身 飞驰 赶得 正急间 道旁 号角 声响 冲出 十余名 黑衣 武士 当先 一人 举起 狼牙棒 头顶 杨铁心 举矛格开 一矛 那人 回棒 横扫 棒法 奇特 似非 中原 武术 所使 家数 杨铁心 郭啸天 谈论 武艺 当年 梁山泊 好汉 中有 一位 霹雳火 秦明 狼牙棒 天下无双 之外 武林 豪杰 兵刃 向来 极少 狼牙棒 份量 沉重 膂力 不易 运用自如 金兵 将官 喜用 以金人 生长 辽东 苦寒 之地 强力 兵器 沉重 占便宜 当年 金兵 入寇 狼牙棒 砸击 宋军民 百姓 气愤 说起 笑话 某甲道 金兵 可怕 一物 自有 抵挡 乙道 金兵 有金 韩少保 乙道 金兵 拐子 麻札刀 乙道 金兵 狼牙棒 天灵盖 天灵盖 头顶 脑门 金兵 狼牙棒 大宋 百姓 只好 天灵盖 抵挡 之中 实含 无限 悲愤 杨铁心 狼牙棒 数合 想起 郭啸天 谈论 越来越 疑心 这人 棒法 招术 明明 金兵 将官 怎地 现身 斗数合 枪招 加快 挺矛 刺于 马下 余众 大惊 发喊 逃散 杨铁心 转头 身后 李氏 之中 有无 受伤 树丛 中射出 一枝 冷箭 杨铁心 不及 闪避 一箭直 透后 李氏 大惊 叔叔 杨铁心 心中 今日 先得 贼兵 杀散 大嫂 逃生 摇矛 狂呼 往人 多处 直冲 背上 剧痛 眼前 漆黑 昏晕 马背 之上 包惜弱 吞声饮泣 心中 挂念 丈夫 不知 性命 天色 已明 路上 渐有 行人 百姓 见到 官兵 队伍 远远 躲开 包惜弱 担心 官兵 无礼 哪知众 武官 言语 举止 之间 颇为 客气 这才 稍稍 放心 数里 喊声 大振 十余名 黑衣人 手执 兵刃 道旁 冲杀 当先 一人 喝道 无耻 官兵 残害 良民 通统 下马 纳命 带队 武官 大怒 喝道 何方 大胆 匪徒 京畿 之地 作乱 快快 滚开 一众 黑衣人 打话 冲入 官兵 队里 混战 官兵 人多 黑衣人 个个 武艺 精熟 一时之间 杀得 不分胜负 包惜弱 暗暗 欢喜 心想 莫不是 铁哥 朋友 讯息 前来 相救 混战 中一箭 飞来 正中 包惜弱 坐骑 那马 负痛 纵蹄向北 疾驰 包惜弱 大惊 双臂 搂住 马颈 下马 蹄声 急促 骑马 转眼间 一匹 黑马 身旁 掠过 乘客 手持 长索 空中 几圈 一声 长索 飞出 索上 圈套 包惜弱 坐骑 骑马 而驰 渐渐 收短 绳索 骑马 奔跑 缓慢 数十步 呼哨 一声 黑马 收脚 站住 包惜弱 坐骑 黑马 一带 向前 一声 长嘶 前足 提起 人立 包惜弱 劳顿 大半夜 惊恐 伤心 再也 不住 双手 一松 下马 昏睡 不知 悠悠 只觉 柔软 床上 身上 似盖 棉被 甚觉 温暖 睁开眼睛 入眼 青花 布帐 果是 床上 侧头望 见床 桌上 点着 油灯 似有 黑衣 男子 坐在 床沿 那人 翻身 起身 轻轻 揭开 帐子 低声 问道 睡醒 包惜弱 神智 尚未 全复 只觉 这人 依稀 似曾相识 伸手 额头 一摸 轻声道 烧得 烫手 医生 快来 包惜弱 迷迷糊糊 地重 入睡 一会 似觉 医生 把脉 诊视 有人 喝药 昏睡 梦中 惊醒 大叫 铁哥 铁哥 随觉 有人 轻拍 肩膀 低语 抚慰 醒来时 白天 忍不住 呻吟 一个 走近 前来 揭开 帐子 包惜弱 分明 不觉 一惊 面目 清秀 嘴角 含笑 几个 雪地 垂死 青年 包惜弱 这是 地方 当家的 青年 摇摇手 示意 低声 外边 官兵 追捕 现下 借住 一家 乡农 家里 小人 斗胆 谎称 娘子 丈夫 娘子 别露 形迹 包惜弱 脸一红 点头 当家的 那人道 娘子 身子 虚弱 大好 小人 慢慢 告知 包惜弱 大惊 语气 丈夫 不测 双手 紧紧抓住 被角 声道 那人 娘子 心急 无益 身子 要紧 包惜弱 满脸 无可奈何 之状 点头 杨爷 不幸 官兵 害死 摇头叹息 包惜弱 伤痛 攻心 良久 放声大哭 细声 安慰 包惜弱 抽抽噎噎 地道 去世 那人道 杨爷 二十 年纪 身长 膀阔 手使 一柄 长矛 包惜弱 那人道 昨日 见到 官兵 相斗 好几个 可惜 可惜 一名 武官 偷偷 绕到 身后 枪刺 包惜弱 夫妻情 一日 水米 不进 决意 绝食 殉夫 那人 相强 整日 斯斯文文 说话 解闷 包惜弱 过意不去 问道 相公 高姓大名 打救 那人道 小人 姓颜 名烈 昨天 几个 朋友 官兵 逞凶 害人 小人 路见不平 出手 相救 老天爷 有眼 所救 竟是 恩人 天缘 巧合 包惜弱 听到 天缘 巧合 四字 脸上 一红 转身 向里 理他 心下 琢磨 疑窦 转身 说道 官兵 本来 一路 颜烈 包惜弱 那日 官兵 捉拿 那位 道长 这才 受伤 颜烈 那日 冤枉 小人 北边 临安 路过 贵村 无端 一箭射来 娘子 大恩 相救 真死 不明不白 道士 道士 官兵 道士 一塌糊涂 笑了起来 包惜弱 路过 一伙 道长 那天 不想 述说 官兵 前来 捉拿 丘处机 杀散 官兵 包惜弱 一会 怔怔 脸上 神色 痴痴 迷迷 心神 不属 住口 颜烈 陪笑 对不住 怎生 逃出去 可别 官兵 包惜弱 哭道 丈夫 过世 活着 干什么 一个 颜烈 正色 娘子 官人 贼兵 所害 含冤莫白 设法 报仇 一意 寻死 官人 生前 英雄豪杰 之士 九泉之下 瞑目 包惜弱 一个 弱女子 怎有 报仇 能耐 颜烈 义愤 于色 娘子 要报 杀夫 之仇 这件 着落 小人 身上 仇人 包惜弱 说道 统率 官兵 将官 名叫 段天德 额头 有个 刀疤 脸上 有块 青记 颜烈 既有 姓名 记认 逃到 天涯海角 非报 此仇 出房 一碗 稀粥 剥开 咸蛋 说道 爱惜 身子 报仇 包惜弱 心想 有理 接过 慢慢 悲痛 之中 迷迷糊糊 次日 早晨 包惜弱 整衣 对镜 找到 白布 白花 鬓边 丈夫 带孝 红颜 如花 夫妻 殊途 悲从中来 痛哭 颜烈 外面 哭声 稍停 柔声道 外面 官兵 包惜弱 出屋 颜烈 一锭 银子 屋主 两匹马 包惜弱 本来 一箭 颜烈 裹好 包惜弱 颜烈 使个 眼色 人前 多问 上马 两人 并辔 向北 走出 十余里 包惜弱 颜烈 找个 隐僻 避一避 风头 官家 追拿得 小人 找寻 官人 尸首 好好 安葬 找到 段天德 奸贼 官人 报仇 包惜弱 性格 柔和 本少 主意 大难 孤苦无依 周到 心中 好生 感激 颜相公 怎生 报答 颜烈 凛然 性命 娘子 所救 小人 一生 娘子 驱使 粉身碎骨 赴汤蹈火 包惜弱 那大 坏人 段天德 铁哥 大仇 地下 想到 垂下 泪来 人行 一日 晚上 长安 镇上 投店 歇宿 颜烈 自称 夫妇 二人 一间 包惜弱 心中 惴惴不安 吃晚饭 一声 抚摸 丘处机 所赠 短剑 心中 打定 主意 无礼 自杀 颜烈命 店伴 两捆 稻草 入房 店伴 房门 稻草 地下 稻草 之中 身上 一张 毡毯 包惜弱 娘子 请安 闭上 包惜弱 怦怦 想起 故世 丈夫 柔肠寸断 大半个 时辰 长叹 口气 熄灭 烛火 手中 紧握 短剑 床上 次日 包惜弱 起身 颜烈 收拾 马具 店伴 安排 早点 包惜弱 暗暗 感激 至诚 君子 防范 之心 登时 消了 大半 待用 早点 一碟 干丝 一碟 火腿 一碟 腊肠 一碟 熏鱼 另有 一小 清香 扑鼻 米粥 生于 清贫 自归 杨门 务农 为生 平日 早饭 几根 咸菜 半块 乳腐 过年 过节 喜庆宴会 之外 考究 饮食 食用 颇感 不安 店伴 送来 一个 包裹 颜烈 走出 房去 包惜弱 问道 这是 店伴 相公 今日 一早 买来 娘子 替换 衣服 相公 娘子 放下 包裹 走出 房去 包惜弱 打开 包裹 看时 不觉 一套 全身 缟素 衣裙 白鞋 袜固 一应俱全 内衣 小袄 罗帕 汗巾 齐备 心道 难为 一个 年轻 男子 怎想 周到 换上 内衣 想到 颜烈 所买 满脸 红晕 半夜 仓促 离家 衣衫 本已 不整 一夜 纠缠 奔逃 满身 破损 尘污 换上 衣衫 里外 一新 精神 不觉 稍振 颜烈 回房 身上 光鲜 焕然 两人 一前一后 并辔 而行 江南春 道旁 垂柳 拂肩 花气 醉人 田中 禾苗 新绿 颜烈 宽怀 减愁 东谈西 包惜弱 父亲 小镇 学究 常识 丈夫 和义兄 郭啸天 粗豪 汉子 一生 之中 吐属 俊雅 才识 博洽 男子 但觉 言一语 无不 含意 隽妙 心中 暗暗 称奇 眼见 一路 临安 越来越 绝口不提 为己 报仇 安葬 丈夫 忍不住 颜相公 夫君 尸身 不知 颜烈 非是 小人 不肯 寻访 尊夫 尸首 安葬 前日 娘子 时杀 官兵 眼下 风急 火旺 当口 临安 左近 现身 非遭 官兵 毒手 眼下 官府 娘子 说道 尊夫 杀官 造反 罪大恶极 拿到 家属 斩首 充作 官妓 小人 死不足惜 娘子 无人 保护 官兵 遭遇 极惨 人身 黄泉之下 伤心 含恨 包惜弱 诚恳 点头 颜烈 仔细 想过 眼下 要紧 尊夫 收尸 安葬 嘉兴 取出 银子 托人 临安 妥为 办理 娘子 定要 放心 嘉兴 安顿 娘子 小人 冒险 前往 包惜弱 心想 甘冒 于理 不合 说道 相公 如能 找到 妥当 可靠 丈夫 有个 义兄 遭难 敢烦 相公 一并 安葬 垂下 泪来 颜烈 此事 娘子 放心 便是 报仇 段天德 贼子 朝廷 武将 着实 不易 此刻 防备 得紧 慢慢 等候 机会 包惜弱 只想 仇人 自杀 殉夫 颜烈 这番话 句句 实情 不知 何年何 心下 一急 出声 抽抽噎噎 地道 想要 当家的 英雄 被害 一个 弱女子 能耐 一死 殉夫 便是 颜烈 沉吟 半晌 为难 终于 说道 娘子 信得过 包惜弱 点头 颜烈 眼下 前去 北方 躲避 官兵 追捕 大宋 官兵 北边 淮河 没多大 凶险 事情 冷下来 南下 报仇雪恨 娘子 放心 宽怀 官人 血海 沉冤 自有 小人 一力 承担 包惜弱 大为 踌躇 家破人亡 举目无亲 跟随 孤身 一个 弱女子 安身立命 那晚 亲眼见到 官兵 杀人放火 凶狠 模样 落入 手中 充作 官妓 那真 求生 求死 此人 非亲非故 守节 寡妇 一个 青年 男子 同行 此刻 举刃 自刎 此人 阻拦 只觉 去路 茫茫 来日大难 思前想后 柔肠百转 悲伤 哭泣 眼泪 流干 颜烈 娘子 如觉 小人 筹划 不妥 吩咐 小人 无有 包惜弱 迁就 心中 反觉 过意不去 一了百了 实在 他法 无可奈何 之下 只得 低头 瞧着办 颜烈 大喜 说道 娘子 活命 大德 小人 终身 忘记 娘子 包惜弱 颜烈 当晚 两人 乌墩 一家 客店 中宿 同处 一室 包惜弱 答允 北方 颜烈 言谈举止 先前 拘谨 时时 流露出 喜不自胜 之情 包惜弱 隐隐 不妥 丝毫 越礼 心想 感恩图报 料来 不致 有何 异心 次日 中午 两人 嘉兴府 浙西 大城 丝米 集散 之地 自来 繁盛 古称 秀州 五代 石晋 改名 嘉禾 南宋 孝宗 诞生 即位 改名 嘉兴 意谓 龙兴 地近 京师 临安 市肆 兴旺 颜烈 一家 客店 歇歇 包惜弱 害怕 官兵 天色 尚早 赶道 颜烈 店铺 不错 娘子 衣服 几套 替换 包惜弱 一呆 昨天 颜烈 衣服 一两天 光鲜 娘子 容色 岂可 世上 顶上 衣衫 包惜弱 夸奖 容貌 内心 窃喜 低头 热丧 之中 颜烈 小人 理会 包惜弱 言语 容貌 秀丽 丈夫 杨铁心 当面 赞过 低下头 偷眼 颜烈 轻薄 神色 心中 栗六 不知 颜烈 途人 径去 秀水 客栈 投店 漱洗 颜烈 包惜弱 点心 两人 坐在 房中 包惜弱 想要 一间 客房 不知 启齿 脸上 一阵 一阵 心事重重 一会 颜烈 娘子 小人 物品 包惜弱 点头 相公 可别 太多 花费 颜烈 微笑 可惜 娘子 服丧 戴用 珠宝 多花钱'
from sklearn.feature_extraction.text import CountVectorizer
countvec = CountVectorizer(min_df = 5) # 在5个以上章节中出现的才保留

res = countvec.fit_transform(rawchap)
res
<5x250 sparse matrix of type '<class 'numpy.int64'>'
	with 1250 stored elements in Compressed Sparse Row format>
res.todense()#转换为标准格式的d2m矩阵
matrix([[30,  7,  3, ...,  2,  2,  4],
        [39,  8,  1, ...,  1,  3,  4],
        [30, 10,  4, ...,  3,  1, 16],
        [45,  1,  6, ...,  1,  3,  4],
        [31,  5,  5, ...,  1,  1,  3]], dtype=int64)
countvec.get_feature_names()
['一个',
 '一人',
 '一件',
 '一匹',
 '一口',
 '一只',
 ...
 '飞来',
 '马背',
 '高举',
 '鲜血',
 '齐声']

实战:生成词向量

尝试编制以下程序:

以段为单位依次读入射雕第一章的内容。
为每一段分别生成bow稀疏向量。
生成稀疏向量的同时动态更新字典。

请自行编制bow稀疏向量和标准长向量互相转换的程序。

请自行思考基于BOW的分析模型和基于分布式表示向量的模型在文本挖掘中的适用范围和优缺点。

在文档词条矩阵中可以看到许多类似“黄蓉道”、“黄蓉说”之类的词条,请思考对此有哪些处理办法。

import jieba
raw_1=raw[raw.chap == 1]
raw_1=raw_1.iloc[3:4].txt
raw_1
res_1 = ' '.join(jieba.cut(str(raw_1)))
res_1
'那 说话 人 五十 来 岁 年纪 , 一件 青布 长袍 早洗 得 褪成 了 蓝灰 带白 。 只 听 他 两片 梨花 木板 碰 了 几下 , 左手 ... \n Name :   txt ,   dtype :   object'
raw1=raw[raw.chap == 1]
raw1.txt[36]
res_1 =[ ' '.join(jieba.cut(raw1.txt[36]))]
res_1
[' 那 说话 人 五十 来 岁 年纪 , 一件 青布 长袍 早洗 得 褪成 了 蓝灰 带白 。 只 听 他 两片 梨花 木板 碰 了 几下 , 左手 中 竹棒 在 一面 小 羯鼓 上 敲起 得 得 连声 。 唱道 : “ 小桃 无主自 开花 , 烟草 茫茫 带 晚鸦 。']

2.关键词提取

2.1TF-IDF 算法

TF-IDF的具体实现

jieba, NLTK, sklearn, gensim等程序包都可以实现TF-IDF的计算。除算法细节上会有差异外,更多的是数据输入/输出格式上的不同。

2.1.1 TF_IDF算法的第一种实现:jieba

输出结果会自动按照TF-IDF值降序排列,并且直接给出的是词条而不是字典ID,便于阅读使用。

可在计算TF-IDF时直接完成分词,并使用停用词表和自定义词库,非常方便。

有默认的IDF语料库,可以不训练模型,直接进行计算。

以单个文本为单位进行分析。

jieba.analyse.extract_tags(

sentence 为待提取的文本
topK = 20 : 返回几个 TF/IDF 权重最大的关键词
withWeight = False : 是否一并返回关键词权重值
allowPOS = () : 仅包括指定词性的词,默认值为空,即不筛选

)

jieba.analyse.set_idf_path(file_name)

关键词提取时使用自定义逆向文件频率(IDF)语料库,由词库和频率构成

劳动防护 13.900677652
生化学 13.900677652
奥萨贝尔 13.900677652
奧薩貝爾 13.900677652
考察队员 13.900677652

jieba.analyse.set_stop_words(file_name)

关键词提取时使用自定义停止词(Stop Words)语料库

jieba.analyse.TFIDF(idf_path = None)

新建 TFIDF模型实例
idf_path : 读取已有的TFIDF频率文件(即已有模型)
使用该实例提取关键词:TFIDF实例.extract_tags()

import jieba
import jieba.analyse

# 注意:函数是在使用默认的TFIDF模型进行分析!
jieba.analyse.extract_tags(chapter.txt[1])
['杨铁心',
 '包惜弱',
 '郭啸天',
 '曲三',
 '武官',
 '颜烈',
 ...
 '那道人',
 '道长',
 '小人',
 '临安',
 '皇帝',
 '娘子']
jieba.analyse.extract_tags(chapter.txt[1], withWeight = True) # 要求返回权重值
[('杨铁心', 0.2498834204873144),
 ('包惜弱', 0.18612006491468935),
 ('郭啸天', 0.11546337360448321),
 ('曲三', 0.07238002524460141),
 ('武官', 0.06721002344141559),
 ...
 ('那道人', 0.04136001442548652),
 ('道长', 0.03963668049109125),
 ('小人', 0.034466678687905435),
 ('临安', 0.034466678687905435),
 ('皇帝', 0.034466678687905435),
 ('娘子', 0.03122667298477728)]
# 应用自定义词典改善分词效果
jieba.load_userdict('金庸小说词库.txt') # dict为自定义词典的路径
# 在TFIDF计算中直接应用停用词表
jieba.analyse.set_stop_words('停用词.txt')
TFres = jieba.analyse.extract_tags(chapter.txt[1], withWeight = True)
TFres[:10]
[('杨铁心', 0.249847403851326),
 ('包惜弱', 0.18609323873064282),
 ('郭啸天', 0.11544673143475064),
 ('曲三', 0.07236959283969444),
 ('武官', 0.06720033620828768),
 ('颜烈', 0.06375416512068319),
 ('说道', 0.058584908489276444),
 ('丘处机', 0.05774159721377919),
 ('杨二人', 0.0534156518578697),
 ('金兵', 0.05169256631406745)]

在前面jieba使用的是自己默认的idf语料库文件,这样也可以完成目标,当然也可以自己导idf文件入,idf主要是一个语料库,观察该词是否在其它文件经常出现,是否具有区分度,来精确判断是否适合当关键词

# 使用自定义TF-IDF频率文件
jieba.analyse.set_idf_path("idf.txt.big")
TFres1 = jieba.analyse.extract_tags(chapter.txt[1], withWeight = True)
TFres1[:10]
[('杨铁心', 0.249847403851326),
 ('包惜弱', 0.18609323873064282),
 ('郭啸天', 0.11544673143475064),
 ('曲三', 0.07236959283969444),
 ('武官', 0.06720033620828768),
 ('颜烈', 0.06375416512068319),
 ('说道', 0.058584908489276444),
 ('丘处机', 0.05774159721377919),
 ('杨二人', 0.0534156518578697),
 ('金兵', 0.05169256631406745)]

2.1.2 TF_IDF算法的第二种实现:sklearn

输出格式为矩阵,直接为后续的sklearn建模服务。

需要先使用背景语料库进行模型训练。

结果中给出的是字典ID而不是具体词条,直接阅读结果比较困难。

class sklearn.feature_extraction.text.TfidfTransformer()

发现参数基本上都不用动,所以这里就不介绍了…

需要提前用空格把词分好

from sklearn.feature_extraction.text import TfidfTransformer

txtlist = [ " ".join(m_cut(w)) for w in chapter.txt.iloc[:5]] 

vectorizer = CountVectorizer() #构造一个实例,联想C语言
X = vectorizer.fit_transform(txtlist) # 将文本中的词语转换为词频矩阵  

transformer = TfidfTransformer()  
tfidf = transformer.fit_transform(X)  #基于词频矩阵X计算TF-IDF值  
tfidf#结果是一个稀疏矩阵,较大,压缩存储,所以结果没有展示出来
<5x11572 sparse matrix of type '<class 'numpy.float64'>'
	with 16832 stored elements in Compressed Sparse Row format>
tfidf.toarray() # 稀疏矩阵转换为数组
array([[0.        , 0.        , 0.        , ..., 0.00574085, 0.        ,
        0.        ],
       [0.        , 0.        , 0.        , ..., 0.        , 0.        ,
        0.        ],
       [0.01957186, 0.        , 0.        , ..., 0.        , 0.        ,
        0.        ],
       [0.        , 0.00663519, 0.        , ..., 0.        , 0.        ,
        0.        ],
       [0.        , 0.        , 0.00647461, ..., 0.        , 0.00647461,
        0.00647461]])
tfidf.todense() # 转换为标准矩阵
matrix([[0.        , 0.        , 0.        , ..., 0.00574085, 0.        ,
         0.        ],
        [0.        , 0.        , 0.        , ..., 0.        , 0.        ,
         0.        ],
        [0.01957186, 0.        , 0.        , ..., 0.        , 0.        ,
         0.        ],
        [0.        , 0.00663519, 0.        , ..., 0.        , 0.        ,
         0.        ],
        [0.        , 0.        , 0.00647461, ..., 0.        , 0.00647461,
         0.00647461]])
tfidf.todense().shape
(5, 11572)
print("字典长度:", len(vectorizer.vocabulary_))
vectorizer.vocabulary_
字典长度: 11572

{'第一回': 8687,
 '风雪': 11268,
 '惊变': 5273,
 '说话': 9814,
  ...
 '重甸甸': 10755,
 '铁铸': 10857,
 '八角形': 1876,
 '八卦': 1870,
 ...}

2.1.3 TF_IDF算法的第三种实现:gensim

输出格式为list,目的也是为后续的建模分析服务。

需要先使用背景语料库进行模型训练。

结果中给出的是字典ID而不是具体词条,直接阅读结果比较困难。

gensim也提供了sklearn的API接口:sklearn_api.tfidf,可以在sklearn中直接使用。

# 文档分词及预处理  
chaplist = [m_cut(w) for w in chapter.txt.iloc[:5]]
chaplist
[['第一回',
  '风雪',
  '惊变',
  ...
  '摇头',
  '郭啸天',
  ...],
 ['第二回',
  '江南七怪',
  '颜烈',
  ...
  '姓名',
  '详为',
  ...],
 ...
 ['第五回',
  '弯弓',
  '射雕',
  ...
  '江南',
  '六怪',
  ...]]
from gensim import corpora, models  

# 生成文档对应的字典和bow稀疏向量
dictionary = corpora.Dictionary(chaplist)  
corpus = [dictionary.doc2bow(text) for text in chaplist] # 仍为list in list  
corpus
[[(0, 1),
  (1, 30),
  (2, 1),
  (3, 1),
  ...],
 [(1, 39),
  (4, 1),
  (7, 8),
  ...
  (3831, 1),
  (3832, 1),
  ...],
  ...]
tfidf_model = models.TfidfModel(corpus) # 建立TF-IDF模型  
corpus_tfidf = tfidf_model[corpus] # 对所需文档计算TF-IDF结果
corpus_tfidf
<gensim.interfaces.TransformedCorpus at 0x2545f640588>
corpus_tfidf[3] # 列出所需文档的TF-IDF计算结果
[(10, 0.004047708120002091),
 (11, 0.0035363142432901736),
 (12, 0.0017681571216450868),
 ...
 (6505, 0.02178166440641619),
 (6510, 0.008095416240004183),
 (6530, 0.014521109604277462),
 ...]
dictionary.token2id # 列出字典内容
{'一两天': 0,
 '一个': 1,
 '一个个': 2,
 '一个二十': 3,
 '一个月': 4,
 ...
'各物': 995,
 '各路': 996,
 '吆喝': 997,
 '合力': 998,
 '合拢': 999,
 ...}

2.2TextRank算法

主要基于图形,等同TF_IDF

TextRank算法的jieba实现

jieba.analyse.textrank(

sentence, 
topK=20, 
withWeight=False,#是否将相应的权重一起输出
allowPOS=('ns', 'n', 'vn', 'v') #默认是过滤词性的,和2.1.1的参数要区分开

)

jieba.analyse.textrank(chapter.txt[1], topK=20, withWeight = True)
#如果加入了allowPOS属性,里面不写变量,则全部过滤,输出结果为空
[('官兵', 1.0),
 ('武官', 0.9502084547170757),
 ('丘处机', 0.7759100378553069),
...
 ('贫道', 0.31106256778351027),
 ('铁枪', 0.3089179102852321),
 ('双手', 0.30592655095990534)]

实战练习

请使用《射雕》全文计算出jieba分词的IDF语料库,然后使用该语料库重新对第一章计算关键词。比较这样的分析结果和以前有何不同。

请自行编制将jieba分词的TF-IDF结果转换为文档-词条矩阵格式的程序。

请自行思考本章提供的三种TF-IDF实现方式的使用场景是什么。

#1.计算出全文的tfidf
jieba.load_userdict('金庸小说词库.txt') # dict为自定义词典的路径

# 在TFIDF计算中直接应用停用词表
jieba.analyse.set_stop_words('停用词.txt')
raw.set_index('chap')
raw0=str(raw.groupby(by='chap').txt.sum())#将所有章节连在一起

TFres = jieba.analyse.extract_tags(raw0, withWeight = True)
TFres[:10]
[('...', 0.8690522475512411),
 ('郭靖', 0.27555315166258865),
 ('黄蓉', 0.12717837769042553),
 ('欧阳锋', 0.08478558512695035),
 ('黄药师', 0.07025282165638298),
 ('不多时', 0.06358918884521277),
 ('两人', 0.06358918884521277),
 ('说道', 0.06358918884521277),
 ('周伯通', 0.04929318316312057),
 ('一件', 0.042392792563475175)]
#将全文idf文件转为df并将其导出
df1 = pd.DataFrame(data = TFres, 
                   columns = [ 'var2', 'var3' ]
                  )
df1.to_csv('shediao_idf.txt', columns =['var2', 'var3'], index = False)
#header要和表列的个数相对应
# 使用全文DF频率文件处理第一章内容
jieba.analyse.set_idf_path("shediao_idf.txt")
TFres2 = jieba.analyse.extract_tags(chapter.txt[1], withWeight = True)
TFres2[:10]
[('杨铁心', 0.249847403851326),
 ('包惜弱', 0.18609323873064282),
 ('郭啸天', 0.11544673143475064),
 ('官兵', 0.07409267838349667),
 ('曲三', 0.07236959283969444),
 ('武官', 0.06720033620828768),
 ('颜烈', 0.06375416512068319),
 ('丘处机', 0.06203107957688094),
 ('说道', 0.058584908489276444),
 ('杨二人', 0.0534156518578697)]
# 使用jieba自带TF-IDF频率文件,显然两者有着明显的区别
jieba.analyse.set_idf_path("idf.txt.big")
TFres1 = jieba.analyse.extract_tags(chapter.txt[1], withWeight = True)
TFres1[:10]
[('杨铁心', 0.249847403851326),
 ('包惜弱', 0.18609323873064282),
 ('郭啸天', 0.11544673143475064),
 ('曲三', 0.07236959283969444),
 ('武官', 0.06720033620828768),
 ('颜烈', 0.06375416512068319),
 ('说道', 0.058584908489276444),
 ('丘处机', 0.05774159721377919),
 ('杨二人', 0.0534156518578697),
 ('金兵', 0.05169256631406745)]
#jieba分词的TF-IDF结果转换为文档-词条矩阵

3. 抽取文档主题

文档主题提取出的词语比关键词更准确,但前提要大量文本

3.1 sklearn实现

在scikit-learn中,LDA主题模型的类被放置在sklearn.decomposition.LatentDirichletAllocation类中,其算法实现主要基于变分推断EM算法,而没有使用基于Gibbs采样的MCMC算法实现。

注意由于LDA是基于词频统计的,因此理论上一般不宜用TF-IDF来做文档特征,但并非不能尝试。实际分析中也确实会见到此类操作。

class sklearn.decomposition.LatentDirichletAllocation(

n_components = None : 隐含主题数K,需要设置的最重要参数。
    K的设定范围和具体的研究背景有关。
    K越大,需要的文档样本越多。
doc_topic_prior = None : 文档主题先验Dirichlet分布的参数α,未设定则用1/K。
topic_word_prior = None : 主题词先验Dirichlet分布的参数η,未设定则用1/K。

learning_method = 'online' : 即LDA的求解算法。'batch' | 'online'
batch: 变分推断EM算法,会将将训练样本分批用于更新主题词分布,新版默认算法。
    样本量不大只是用来学习的话用batch比较好,这样可以少很多参数要调。
    需注意n_components(K), doc_topic_prior(α), topic_word_prior(η)
online: 在线变分推断EM算法,大样本时首选。
    需进一步注意learning_decay, learning_offset,
        total_samples和batch_size等参数。

仅在online算法时需要设定的参数
    learning_decay = 0.7 :控制"online"算法的学习率,一般不用修改。
        取值最好在(0.5, 1.0],以保证"online"算法渐进的收敛。
    learning_offset = 10. :用来减小前面训练样本批次对最终模型的影响。 取值要大于1。
    total_samples = 1e6 : 分步训练时每一批文档样本的数量。
        使用partial_fit进行模型拟合时才需要此参数。
    batch_size = 128 : 每次EM算法迭代时使用的文档样本的数量。

)

将语料库转换为所需矩阵

除直接使用分词清理后文本进行转换外,也可以先计算关键词的TF-IDF值,然后使用关键词矩阵进行后续分析。

# 设定分词及清理停用词函数
stoplist = list(pd.read_csv('停用词.txt', names = ['w'], sep = 'aaa', 
                            encoding = 'utf-8', engine='python').w)
import jieba 
def m_cut(intxt):
    return [ w for w in jieba.cut(intxt) 
            if w not in stoplist and len(w) > 1 ] 
# 生成分词清理后章节文本
cleanchap = [ " ".join(m_cut(w)) for w in chapter.txt] 
# 将文本中的词语转换为词频矩阵  
from sklearn.feature_extraction.text import CountVectorizer
countvec = CountVectorizer(min_df = 5) 
wordmtx = countvec.fit_transform(cleanchap) 
#基于词频矩阵X计算TF-IDF值  
from sklearn.feature_extraction.text import TfidfTransformer
transformer = TfidfTransformer()  
tfidf = transformer.fit_transform(wordmtx)  
tfidf
<40x6534 sparse matrix of type '<class 'numpy.float64'>'
	with 72473 stored elements in Compressed Sparse Row format>
# 设定LDA模型
from sklearn.decomposition import LatentDirichletAllocation
n_topics = 10
ldamodel = LatentDirichletAllocation(n_components = n_topics)

待处理

# 拟合LDA模型
ldamodel.fit(tfidf)
LatentDirichletAllocation()
print(ldamodel.components_.shape)
ldamodel.components_[:2]
(10, 6534)

array([[0.1       , 0.10000001, 0.1       , ..., 0.10000001, 0.10000001,
        0.1       ],
       [0.1       , 0.10000001, 0.1       , ..., 0.10000001, 0.10000001,
        0.1       ]])
# 主题词打印函数(直接使用即可)
def print_top_words(model, feature_names, n_top_words):
    for topic_idx, topic in enumerate(model.components_):
        print("Topic #%d:" % topic_idx)
        print(" ".join([feature_names[i] 
                        for i in topic.argsort()[:-n_top_words - 1:-1]]))
    print()
n_top_words = 12
tf_feature_names = countvec.get_feature_names()
print_top_words(ldamodel, tf_feature_names, n_top_words)
Topic #0:
更要 当者 可怕 完毕 声震 极好 说笑话 无双 常听 之侧 人情 撕成
...
Topic #9:
郭靖 黄蓉 欧阳锋 洪七公 师父 黄药师 说道 周伯通 一个 裘千仞 武功 黄蓉道

3.2 gensim实现(优于上者)

class gensim.models.ldamodel.LdaModel(

corpus = None : 用于训练模型的语料
num_topics = 100 : 准备提取的主题数量
id2word = None : 所使用的词条字典,便于结果阅读
passes = 1 :模型遍历语料库的次数,次数越多模型越精确,但是也更花时间
)

用新出现的语料更新模型

ldamodel.update(other_corpus)

gensim也提供了sklearn的API接口:sklearn_api.ldamodel,可以在sklearn中直接使用。

列出最重要的前若干个主题

print_topics(num_topics=20, num_words=10)

stoplist = list(pd.read_csv('停用词.txt', names = ['w'], sep = 'aaa', 
                            encoding = 'utf-8', engine='python').w)
import jieba 
def m_cut(intxt):
    return [ w for w in jieba.cut(intxt) 
            if w not in stoplist and len(w) > 1 ] 
# 文档预处理,提取主题词  
chaplist = [m_cut(w) for w in chapter.txt]#不需要加空格,不同库的格式要求不同
# 生成文档对应的字典和bow稀疏向量
from gensim import corpora, models  

dictionary = corpora.Dictionary(chaplist)  
corpus = [dictionary.doc2bow(text) for text in chaplist] # 仍为list in list  

tfidf_model = models.TfidfModel(corpus) # 建立TF-IDF模型  
corpus_tfidf = tfidf_model[corpus] # 对所需文档计算TF-IDF结果
corpus_tfidf
<gensim.interfaces.TransformedCorpus at 0x22dd25ba128>
from gensim.models.ldamodel import LdaModel

# 列出所消耗的时间备查
%time ldamodel = LdaModel(corpus_tfidf, id2word = dictionary, \
                          num_topics = 10, passes = 2) 
Wall time: 3.41 s
ldamodel.print_topics()#相比sklearn之下这个没问题
[(0,
  '0.000*"傻姑" + 0.000*"瀑布" + 0.000*"那公子" + 0.000*"水帘" + 0.000*"那书生" + 0.000*"周伯通" + 0.000*"松柴" + 0.000*"一灯" + 0.000*"欧阳锋" + 0.000*"穆易"'),
 (1,
  '0.000*"铁木真" + 0.000*"哲别" + 0.000*"那长须" + 0.000*"箫声" + 0.000*"黄裳" + 0.000*"博尔" + 0.000*"周伯通" + 0.000*"完颜洪熙" + 0.000*"棺材" + 0.000*"李萍"'),
 (2,
  '0.000*"傻姑" + 0.000*"裘千仞" + 0.000*"黄药师" + 0.000*"欧阳锋" + 0.000*"柯镇恶" + 0.000*"简长老" + 0.000*"简管家" + 0.000*"爷爷" + 0.000*"完颜康" + 0.000*"黄蓉"'),
...
 (8,
  '0.000*"黎生" + 0.000*"大梁" + 0.000*"欧阳克" + 0.000*"李萍" + 0.000*"小姐" + 0.000*"欧阳锋" + 0.000*"蹄印" + 0.000*"程大" + 0.000*"大汗" + 0.000*"布袋"'),
 (9,
  '0.000*"周伯通" + 0.000*"欧阳锋" + 0.000*"洪七公" + 0.000*"弹子" + 0.000*"小艇" + 0.000*"经书" + 0.000*"鲁有脚" + 0.000*"桅杆" + 0.000*"成吉思汗" + 0.000*"老顽童"')]
# 计算各语料的LDA模型值
corpus_lda = ldamodel[corpus_tfidf] # 此处应当使用和模型训练时相同类型的矩阵
for doc in corpus_lda:
    print(doc)#40个章节对应上述的几个主题,会出现多主题的情况
ldamodel.get_topics()    
[(0, 0.0167947), (1, 0.016795123), (2, 0.016795522), (3, 0.8488367), (4, 0.016794804), (5, 0.016794944), (6, 0.016802292), (7, 0.016794857), (8, 0.016796084), (9, 0.016794963)]
[(0, 0.01247625), (1, 0.012476358), (2, 0.012476889), (3, 0.01248025), (4, 0.012476468), (5, 0.012476289), (6, 0.8877082), (7, 0.012476381), (8, 0.012476513), (9, 0.01247638)]
...
[(0, 0.016821139), (1, 0.016821587), (2, 0.016831353), (3, 0.01682199), (4, 0.016823184), (5, 0.01682097), (6, 0.01684322), (7, 0.8485669), (8, 0.016822554), (9, 0.016827127)]
array([[2.3060953e-05, 2.2531289e-05, 2.3400156e-05, ..., 2.2531291e-05,
        2.2531291e-05, 2.2531291e-05],
       [2.2603675e-05, 2.2518667e-05, 2.3565068e-05, ..., 2.2518669e-05,
        2.2518669e-05, 2.2518669e-05],
       ...,
       [2.2330050e-05, 2.2330049e-05, 2.3422241e-05, ..., 2.2751270e-05,
        2.2698418e-05, 2.2756312e-05]], dtype=float32)
# 检索和文本内容最接近的主题
query = chapter.txt[1] # 检索和第1章最接近的主题
query_bow = dictionary.doc2bow(m_cut(query)) # 频数向量
query_tfidf = tfidf_model[query_bow] # TF-IDF向量
print("转换后:", query_tfidf[:10])

ldamodel.get_document_topics(query_bow) # 需要输入和文档对应的bow向量
转换后: [(0, 0.007578481591216121), (2, 0.0023179950040969773), (3, 0.009331977120255835), (4, 0.004071490533136692), (5, 0.006552752461545683), (6, 0.009331977120255835), (7, 0.00044833572213007265), (8, 0.001013406848590495), (9, 0.005824986062176406), (10, 0.004409292816000191)]

[(3, 0.8504346), (6, 0.14895077)]
# 检索和文本内容最接近的主题,和上面的代码效果一样###
ldamodel[query_tfidf]
[(0, 0.016795084),
 (1, 0.016795507),
 (2, 0.016795907),
 (3, 0.8488332),
 (4, 0.016795186),
 (5, 0.016795328),
 (6, 0.01680269),
 (7, 0.01679524),
 (8, 0.016796468),
 (9, 0.016795348)]

实战练习

在其余参数全部固定不变的情况下,尝试分别用清理前矩阵、清理后原始矩阵、TF-IDF矩阵进行LDA模型拟合,比较分析结果。

在gensim拟合LDA时,分别将passes参数设置为1、5、10、50、100等,观察结果变化的情况,思考如何对该参数做最优设定。

请尝试对模型进行优化,得到对本案例较好的分析结果。

提示:使用gensim进行拟合更容易一些。

#使用gensim,上文示例给出的是基于idf文档的拟合结果
#清理后的矩阵的LDA拟合(passes=1)时候的结果
dictionary = corpora.Dictionary(chaplist)  
corpus = [dictionary.doc2bow(text) for text in chaplist] # 仍为list in list
from gensim.models.ldamodel import LdaModel
ldamodel = LdaModel(corpus, id2word = dictionary, \
                          num_topics = 10, passes = 1) 
ldamodel.print_topics()#相比sklearn之下这个没问题
# 计算各语料的LDA模型值
corpus_lda = ldamodel[corpus] # 此处应当使用和模型训练时相同类型的矩阵
for doc in corpus_lda:
    print(doc)#40个章节对应上述的几个主题,会出现多主题的情况
ldamodel.get_topics()    
[(4, 0.46530876), (7, 0.53052175)]
[(0, 0.057168692), (2, 0.09194715), (5, 0.02192355), (7, 0.75805956), (8, 0.057155814)]
[(7, 0.99722373)]
[(7, 0.99484575)]
...
[(0, 0.99319243)]
[(0, 0.9998067)]
[(0, 0.034050334), (1, 0.910372), (4, 0.05363397)]
[(0, 0.99984735)]

array([[8.59124611e-06, 3.58081236e-03, 6.77516146e-05, ...,
        6.33762374e-06, 6.78440847e-06, 6.12677059e-06],
       [8.52732683e-06, 3.62049975e-03, 7.63109711e-05, ...,
        7.85666634e-06, 7.08429025e-06, 5.72448744e-06],
       [1.27389158e-05, 2.93019903e-03, 1.07837979e-04, ...,
        9.00865962e-06, 8.63752484e-06, 1.00059715e-05],
       ...,
       [1.11827139e-05, 4.28883312e-03, 6.96640418e-05, ...,
        7.21145489e-06, 6.62511411e-06, 6.54563792e-06],
       [1.02229851e-05, 4.21934389e-03, 7.37137962e-05, ...,
        7.38903054e-06, 6.87136480e-06, 7.47923696e-06],
       [9.25033692e-06, 3.29013146e-03, 7.75957305e-05, ...,
        6.63421406e-06, 6.60454225e-06, 7.50771369e-06]], dtype=float32)
# 检索和文本内容最接近的主题
query = chapter.txt[1] # 检索和第1章最接近的主题
query_bow = dictionary.doc2bow(m_cut(query)) # 频数向量
query_tfidf = tfidf_model[query_bow] # TF-IDF向量
print("转换后:", query_tfidf[:10])

ldamodel.get_document_topics(query_bow) # 需要输入和文档对应的bow向量
转换后: [(0, 0.007298886193176102), (2, 0.002232476456875532), (3, 0.008987689438609624), (4, 0.003921279702309054), (5, 0.006310999623501304), (6, 0.008987689438609624), (7, 0.0004317951258146039), (8, 0.0009760188985377363), (9, 0.005610082947742579), (10, 0.004246619335154967)]

[(4, 0.46046656), (7, 0.5355382)]

上述结果和第四与第七类主题相关,与使用tfidf文档训练的第0与第二个主题明显不同

下面增加passes的数值查看结果

#passes=5
dictionary = corpora.Dictionary(chaplist)  
corpus = [dictionary.doc2bow(text) for text in chaplist] # 仍为list in list
from gensim.models.ldamodel import LdaModel
ldamodel = LdaModel(corpus, id2word = dictionary, \
                          num_topics = 10, passes = 5) 
ldamodel.print_topics()#相比sklearn之下这个没问题
# 计算各语料的LDA模型值
corpus_lda = ldamodel[corpus] # 此处应当使用和模型训练时相同类型的矩阵
for doc in corpus_lda:
    print(doc)#40个章节对应上述的几个主题,会出现多主题的情况
ldamodel.get_topics()   
# 检索和文本内容最接近的主题
query = chapter.txt[1] # 检索和第1章最接近的主题
query_bow = dictionary.doc2bow(m_cut(query)) # 频数向量
query_tfidf = tfidf_model[query_bow] # TF-IDF向量
print("转换后:", query_tfidf[:10])

ldamodel.get_document_topics(query_bow) # 需要输入和文档对应的bow向量
[(3, 0.9998699)]
[(3, 0.9998621)]
[(6, 0.9998502)]
[(6, 0.9998516)]
...
[(6, 0.039239276), (9, 0.9606294)]
[(6, 0.99980944)]
[(8, 0.9998105)]
[(9, 0.99985135)]
转换后: [(0, 0.007298886193176102), (2, 0.002232476456875532), (3, 0.008987689438609624), (4, 0.003921279702309054), (5, 0.006310999623501304), (6, 0.008987689438609624), (7, 0.0004317951258146039), (8, 0.0009760188985377363), (9, 0.005610082947742579), (10, 0.004246619335154967)]

[(3, 0.9998699)]
#passes=50
dictionary = corpora.Dictionary(chaplist)  
corpus = [dictionary.doc2bow(text) for text in chaplist] # 仍为list in list
from gensim.models.ldamodel import LdaModel
ldamodel = LdaModel(corpus, id2word = dictionary, \
                          num_topics = 10, passes = 50) 
ldamodel.print_topics()#相比sklearn之下这个没问题
# 计算各语料的LDA模型值
corpus_lda = ldamodel[corpus] # 此处应当使用和模型训练时相同类型的矩阵
for doc in corpus_lda:
    print(doc)#40个章节对应上述的几个主题,会出现多主题的情况
ldamodel.get_topics()   
# 检索和文本内容最接近的主题
query = chapter.txt[1] # 检索和第1章最接近的主题
query_bow = dictionary.doc2bow(m_cut(query)) # 频数向量
query_tfidf = tfidf_model[query_bow] # TF-IDF向量
print("转换后:", query_tfidf[:10])

ldamodel.get_document_topics(query_bow) # 需要输入和文档对应的bow向量
[(4, 0.9998702)]
[(6, 0.9998624)]
[(0, 0.99985033)]
...
[(0, 0.21487164), (9, 0.78495866)]
[(2, 0.9998108)]
[(7, 0.9998513)]
转换后: [(0, 0.007298886193176102), (2, 0.002232476456875532), (3, 0.008987689438609624), (4, 0.003921279702309054), (5, 0.006310999623501304), (6, 0.008987689438609624), (7, 0.0004317951258146039), (8, 0.0009760188985377363), (9, 0.005610082947742579), (10, 0.004246619335154967)]

[(4, 0.9998702)]
#passes=100
dictionary = corpora.Dictionary(chaplist)  
corpus = [dictionary.doc2bow(text) for text in chaplist] # 仍为list in list
from gensim.models.ldamodel import LdaModel
ldamodel = LdaModel(corpus, id2word = dictionary, \
                          num_topics = 10, passes = 50) 
ldamodel.print_topics()#相比sklearn之下这个没问题
# 计算各语料的LDA模型值
corpus_lda = ldamodel[corpus] # 此处应当使用和模型训练时相同类型的矩阵
for doc in corpus_lda:
    print(doc)#40个章节对应上述的几个主题,会出现多主题的情况
ldamodel.get_topics()   
# 检索和文本内容最接近的主题
query = chapter.txt[1] # 检索和第1章最接近的主题
query_bow = dictionary.doc2bow(m_cut(query)) # 频数向量
query_tfidf = tfidf_model[query_bow] # TF-IDF向量
print("转换后:", query_tfidf[:10])

ldamodel.get_document_topics(query_bow) # 需要输入和文档对应的bow向量
[(6, 0.9998702)]
[(2, 0.99986225)]
[(2, 0.99985033)]
...
[(2, 0.9998097)]
[(2, 0.7723416), (3, 0.20655443), (8, 0.020956578)]
[(8, 0.9998511)]
转换后: [(0, 0.007298886193176102), (2, 0.002232476456875532), (3, 0.008987689438609624), (4, 0.003921279702309054), (5, 0.006310999623501304), (6, 0.008987689438609624), (7, 0.0004317951258146039), (8, 0.0009760188985377363), (9, 0.005610082947742579), (10, 0.004246619335154967)]

[(6, 0.9998702)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文本挖掘学习笔记(二):文档信息向量化与主题关键词提取 的相关文章

  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • 希伯来语中的稀疏句子标记化错误

    尝试对希伯来语使用稀疏句子标记 import spacy nlp spacy load he doc nlp text sents list doc sents I get Warning no model found for he Onl
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • 更改 Altair 中的构面标题位置?

    如何将方面标题 在本例中为年份 移动到每个图的上方 默认值似乎位于图表的一侧 这可以轻易改变吗 import altair as alt from vega datasets import data df data seattle weat
  • python是带有字符串的运算符行为[重复]

    这个问题在这里已经有答案了 我无法理解以下行为 我正在创建 2 个字符串 并使用 is 运算符来比较它 对于第一种情况 它的工作方式有所不同 对于第二种情况 它按预期工作 当我使用逗号或空格时 它显示是什么原因False与比较is当没有使用
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 如何将回溯/sys.exc_info() 值保存在变量中?

    我想将错误名称和回溯详细信息保存到变量中 这是我的尝试 import sys try try print x except Exception ex raise NameError except Exception er print 0 s
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • Python 通过从现有 csv 文件中过滤选定的行来写入新的 csv 文件

    只是一个问题 我试图将 csv 文件中的选定行写入新的 csv 文件 但出现错误 我试图读取的 test csv 文件是这样的 两列 2013 9 1 2013 10 2 2013 11 3 2013 12 4 2014 1 5 2014
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • Django 模型:如何使用 mixin 类来覆盖 django 模型以实现 save 等功能

    我想在每次保存模型之前验证值 所以 我必须重写保存函数 代码几乎是一样的 我想把它写在 mixin 类中 但失败了 我不知道如何写 super func 我英语不好 抱歉 class SyncableMixin object def sav
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • 缓存 Flask-登录 user_loader

    我有这个 login manager user loader def load user id None return User query get id 在我引入 Flask Principal 之前它运行得很好 identity loa

随机推荐

  • 蚂蚁开放联盟链合约开发入门

    蚂蚁链简介 蚂蚁链包含多个产品 合约体验链 开放联盟链 联盟链 合约体验链 一条本地开发体验链 供您免费体验本地开发的全流程 网址 联盟链 可以创建或加入联盟 门槛较高 网址 开放联盟链 面向企业和开发者提供的 无需搭链 快速上链 接近公链
  • 菜鸟学Java public static void main(String[] args) 是什么意思?

    目录 1 经典程序解析 2 包里面的多个类 2 1 全限定名调用程序 2 2 包名的层数 2 3 类中main位置的选择 2 4 不同包中类的调用 3 void位置返回值 4 同一个包内的类调用 5 public位置选择 6 String
  • ES6:Promise详解

    ES6 Promise详解 1 概念 2 Promise有3种状态 3 Promise和async和await的区别 4 Promise API 5 Promise是用来解决两个问题的 6 Promise的三个缺点 7 Promise的两个
  • 性能测试工具有哪些?原理是什么?怎么选择适合的工具?

    前言 本篇文章主要简单总结下性能测试工具的原理以及如何选型 性能测试和功能测试不同 性能测试的执行是基本功能的重复和并发 需要模拟多用户 在性能测试执行时需要监控指标参数 同时性能测试的结果不是那么显而易见 需要对数据进行分析 这些特点决定
  • 【ROS】ROS 初学笔记

    ROS是什么
  • 万能密码原理和总结

    我们所常说的 or or 万能密码的原理是这样的 SQL语句sql select from user where username username and pass pass 当我们用户名和密码都填写 or or 提交的时候 即此时语句中
  • Kubernetes中的etcd访问

    前言 Kubernetes中的etcd访问 正常安装了k8s 没有特意去安装etcd 利用K8s中附带的etcd 感受一下etcd的读写操作 提示 以下是本篇文章正文内容 下面案例可供参考 一 etcd是什么 etcd是一个分布式的key
  • UE4换装系统(合并骨骼模型)

    前面那篇UE4换装系统https blog csdn net luomogenhaoqi article details 88350580 事实上每个身体模型还是各自渲染 现在介绍把每个身体模型合并输出一个模型 把Lod 材质 网格等合并
  • 软件工程第二版(判断题答案)

    判断题 第一章 软件就是程序 编写软件就是编写程序 软件危机的主要表现是软件需求增加 软件价格上升 软件工程学科出现的主要原因是软件危机的出现 软件工具的作用是为了延长软件产品的寿命 第二章 瀑布模型的最大优点是将软件开发的各个阶段划分得十
  • Notepad++ 配置 支持jquery、html、css、javascript、php代码提示

    官网下载 http notepad plus plus org 获取插件的方法 打开软件 窗口工具栏有有一个问号 点获取插件 我使用的插件 安装方法都是官方的方法 QuickText v0 2 1 zip 自定义缩写词 按快捷键后输出 定义
  • Java网络编程Socket(使用字节流)

    套接字 Socket 开发网络应用程序被广泛采用 以至于成为事实上的标准 Socket通信原理 通信的两端都要有Socket 是两台机器间通信的端点 网络通信其实就是Socket间的通信 Socket允许程序把网络连接当成一个流 数据在两个
  • java private 构造函数_JAVA private私有类的 默认构造函数 的生成过程

    如果一个类没有定义任何构造函数 则编译器将生成一个缺省的构造函数 该构造函数的访问修改符和类的访问修改符相同 例如 class test将生成test 构造函数 public class test将生成public test 构造函数 在使
  • JPA使用雪花算法生成主键ID

    实现方式 通过 GenericGenerator注解自定义主键生成策略 需要实现org hibernate id IdentifierGenerator接口 根据官网例子进行改造 官网链接 https docs jboss org hibe
  • Qt中多线程的使用(二)

    线程池 当线程的任务量比较大时 频繁创建和销毁线程会有很大的内存开销 此时使用QThread的方法就不合适 应该使用线程池QThreadPool QThread适用于常驻内存的任务 QThreadPool适用于不常驻内存 任务量比较大的情况
  • Element-UI官方文档阅读笔记(VUE)—持续更新中····

    前言 本人前端新手一枚 目前工作中接触Element UI较多 但其中很多组件布局什么的都不是很清楚 所以想稍微花点时间简单过一遍Element UI官方文档 并作以记录 其中有什么不对的地方 还请各位路过的大佬不吝赐教 以下内容按elem
  • Hive建表实例——定义serdeproperties属性

    创建table时 直接定义serdeproperties属性 create table wzhg c0 string c1 string c2 string row format serde org apache hadoop hive c
  • 代理模式 【设计模式之禅作者】

    代理模式 12 1 我是游戏至尊 2007年 感觉很无聊 于是就玩了一段时间的网络游戏 游戏名就不说了 要不就有做广告的嫌疑 反正就是打怪 升级 砍人 被人砍 然后继续打怪 升级 打怪 升级 我花了两个月的时间升级到80级 已经很有成就感了
  • Leetcode每日一题:57. 插入区间

    原题 给你一个 无重叠的 按照区间起始端点排序的区间列表 在列表中插入一个新的区间 你需要确保列表中的区间仍然有序且不重叠 如果有必要的话 可以合并区间 示例 1 输入 intervals 1 3 6 9 newInterval 2 5 输
  • 00000000000000000000.timeindex.swap: 另一个程序正在使用此文件,进程无法访问(kafka)

    产生此问题的原因 在window下使用kafka导致 在linux下使用kafka没有此问题 window下kafka报错 linux下kafka正常
  • 文本挖掘学习笔记(二):文档信息向量化与主题关键词提取

    注 学习笔记基于文彤老师文本挖掘的系列课程 全文基于 射雕英雄传 语料库 下面是读入数据的一个基于Pandas的通用操作框架 读入为数据框 import pandas as pd from matplotlib import pyplot