语料准备
选择了一篇新闻稿,有比较明显的段落区分,每个段落由若干句子构成,可用于验证切分效果。
x
# 节气释义
小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。
《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。
我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。
# 物侯特点
四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。
小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。
小寒时节处在"二九、三九"期间,此时东亚大槽发展得最为强大和稳定,蒙古冷高压和阿留申低压也最为强大、稳定,西风槽脊尺度达到最大,并配合最强的西风。因此,小寒时节冷空气降温过程频繁,冬季严寒天气影响范围达到最广的程度。此时不仅北方天寒地冻,南方也异常寒凉,温度在一年的小寒大寒之际降到最低。很多城市小寒的气温比大寒更低,在我国北方地区流传着"小寒胜大寒,常见不稀罕"的说法。在全国的大城市中,有12个城市的极端最低气温出现在小寒节气,包括沈阳、合肥、济南、太原、重庆、贵阳、拉萨、西安、上海、海口、南宁和成都。作为最容易受到冷空气影响的新疆北部和东北大部,此时的风雪天气往往很强。寒意之刺骨,冷风之凛冽,雪花之轻盈,共同造就了小寒的本色。
"莫怪严凝切,春冬正月交",虽然此时正处寒冷时节,但即将迎来冬春相交的时分。天地清冷,万物雪藏,隆冬数九,新岁将至,大自然正在这片沉寂之中悄悄孕育新生。
# 气候农事
小寒时节,在我国北方冬麦区,翠绿色的小麦正在酝酿着一场春的勃发。有农谚为证,"小寒见三白,农家衣食足"。在小寒时节,夜晚出现结霜,称为"一白";水结成了冰,称为"二白";如若下雪,则称为"三白"。小寒节气出现"三白"意味着天气非常寒冷。小麦盖上厚厚的积雪,可以起到保温保湿的作用,为小麦丰收打下基础。"冬天麦盖三层被,来年枕着馒头睡",说的就是这个道理。
小寒时节,南方地区要注意给小麦、油菜等作物追施冬肥,做好防寒防冻、积肥造肥和兴修水利等工作。在冬前浇好冻水、施足冬肥、培土壅根的基础上,寒冬季节采用人工覆盖法也是防御农作物冻害的重要措施。在寒潮或强冷空气来临前,泼浇稀粪水,撒施草木灰,可有效减轻低温对油菜的危害。露地栽培的蔬菜地可将作物秸秆、稻草等稀疏地撒在菜畦上作为冬季长期覆盖物,既不影响光照,又可阻挡地面热量散失,起到保温防冻的效果。
大棚蔬菜以预防灾害性天气为主。一般采取增温炉或多层覆盖等增温措施,天气晴朗的时候放风排湿,降低灰霉病、叶霉病等病害的感染概率。这时要尽量多照阳光,即使出现雨雪低温天气,棚外草帘等覆盖物也不可连续多日不揭,以免影响植株正常的光合作用,造成营养匮乏。
高山茶园特别是西北向易受寒风侵袭的茶园,要以稻草、杂草或塑料薄膜覆盖篷面,以防止引起枯梢和沙暴对叶片的直接危害。雪后,应及早摇落果树枝条上的积雪,避免大风造成枝干断裂。小麦(江北)特别是稻茬麦要覆盖土杂肥以防冻害,油菜(江南)注意开沟排水,施肥以有机肥为主。
麦待春风,果吐芽铃,山茶正雅,水芹味浓......小寒时节,在大雁的飞羽下、喜鹊的新巢中、山鸡的啼鸣里,酝酿着一个洋溢着生机又饱含着希望的开始。
预处理
- 先把上述文本的每个句子都放进一个list中
python
sentences_list=['小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。','《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。','我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。','四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。','小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。','小寒时节处在"二九、三九"期间,此时东亚大槽发展得最为强大和稳定,蒙古冷高压和阿留申低压也最为强大、稳定,西风槽脊尺度达到最大,并配合最强的西风。因此,小寒时节冷空气降温过程频繁,冬季严寒天气影响范围达到最广的程度。此时不仅北方天寒地冻,南方也异常寒凉,温度在一年的小寒大寒之际降到最低。很多城市小寒的气温比大寒更低,在我国北方地区流传着"小寒胜大寒,常见不稀罕"的说法。在全国的大城市中,有12个城市的极端最低气温出现在小寒节气,包括沈阳、合肥、济南、太原、重庆、贵阳、拉萨、西安、上海、海口、南宁和成都。作为最容易受到冷空气影响的新疆北部和东北大部,此时的风雪天气往往很强。寒意之刺骨,冷风之凛冽,雪花之轻盈,共同造就了小寒的本色。','"莫怪严凝切,春冬正月交",虽然此时正处寒冷时节,但即将迎来冬春相交的时分。天地清冷,万物雪藏,隆冬数九,新岁将至,大自然正在这片沉寂之中悄悄孕育新生。','小寒时节,在我国北方冬麦区,翠绿色的小麦正在酝酿着一场春的勃发。有农谚为证,"小寒见三白,农家衣食足"。在小寒时节,夜晚出现结霜,称为"一白";水结成了冰,称为"二白";如若下雪,则称为"三白"。小寒节气出现"三白"意味着天气非常寒冷。小麦盖上厚厚的积雪,可以起到保温保湿的作用,为小麦丰收打下基础。"冬天麦盖三层被,来年枕着馒头睡",说的就是这个道理。','小寒时节,南方地区要注意给小麦、油菜等作物追施冬肥,做好防寒防冻、积肥造肥和兴修水利等工作。在冬前浇好冻水、施足冬肥、培土壅根的基础上,寒冬季节采用人工覆盖法也是防御农作物冻害的重要措施。在寒潮或强冷空气来临前,泼浇稀粪水,撒施草木灰,可有效减轻低温对油菜的危害。露地栽培的蔬菜地可将作物秸秆、稻草等稀疏地撒在菜畦上作为冬季长期覆盖物,既不影响光照,又可阻挡地面热量散失,起到保温防冻的效果。','大棚蔬菜以预防灾害性天气为主。一般采取增温炉或多层覆盖等增温措施,天气晴朗的时候放风排湿,降低灰霉病、叶霉病等病害的感染概率。这时要尽量多照阳光,即使出现雨雪低温天气,棚外草帘等覆盖物也不可连续多日不揭,以免影响植株正常的光合作用,造成营养匮乏。','高山茶园特别是西北向易受寒风侵袭的茶园,要以稻草、杂草或塑料薄膜覆盖篷面,以防止引起枯梢和沙暴对叶片的直接危害。雪后,应及早摇落果树枝条上的积雪,避免大风造成枝干断裂。小麦(江北)特别是稻茬麦要覆盖土杂肥以防冻害,油菜(江南)注意开沟排水,施肥以有机肥为主。','麦待春风,果吐芽铃,山茶正雅,水芹味浓......小寒时节,在大雁的飞羽下、喜鹊的新巢中、山鸡的啼鸣里,酝酿着一个洋溢着生机又饱含着希望的开始。']
- 每个句子都添加索引方便整合
python
sentences = [{'sentence': x, 'index' : i} for i, x in enumerate(sentences_list)]
sentences[:3]
python
# 预览
[{'sentence': '小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。', 'index': 0},
{'sentence': '《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。',
'index': 1},
{'sentence': '我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。',
'index': 2}]
- 把句子前后结合起来,可以减少噪声,捕捉更多连续句子之间的关系。这里窗口长度设为3,前后各1个句子
python
def combine_sentences(sentences, buffer_size=1):
for i in range(len(sentences)):
combined_sentence = ''
for j in range(i - buffer_size, i):
if j >= 0:
combined_sentence += sentences[j]['sentence'] + ' '
combined_sentence += sentences[i]['sentence']
for j in range(i + 1, i + 1 + buffer_size):
if j < len(sentences):
combined_sentence += ' ' + sentences[j]['sentence']
sentences[i]['combined_sentence'] = combined_sentence
return sentences
sentences = combine_sentences(sentences)
sentences[:5]
python
# 预览
[{'sentence': '小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。',
'index': 0,
'combined_sentence': '小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。 《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。'},
{'sentence': '《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。',
'index': 1,
'combined_sentence': '小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。 《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。 我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。'},
{'sentence': '我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。',
'index': 2,
'combined_sentence': '《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。 我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。 四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。'},
{'sentence': '四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。',
'index': 3,
'combined_sentence': '我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。 四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。 小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。'},
{'sentence': '小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。',
'index': 4,
'combined_sentence': '四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。 小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。 小寒时节处在"二九、三九"期间,此时东亚大槽发展得最为强大和稳定,蒙古冷高压和阿留申低压也最为强大、稳定,西风槽脊尺度达到最大,并配合最强的西风。因此,小寒时节冷空气降温过程频繁,冬季严寒天气影响范围达到最广的程度。此时不仅北方天寒地冻,南方也异常寒凉,温度在一年的小寒大寒之际降到最低。很多城市小寒的气温比大寒更低,在我国北方地区流传着"小寒胜大寒,常见不稀罕"的说法。在全国的大城市中,有12个城市的极端最低气温出现在小寒节气,包括沈阳、合肥、济南、太原、重庆、贵阳、拉萨、西安、上海、海口、南宁和成都。作为最容易受到冷空气影响的新疆北部和东北大部,此时的风雪天气往往很强。寒意之刺骨,冷风之凛冽,雪花之轻盈,共同造就了小寒的本色。'}
]
- 调用模型进行embedding
python
from text2vec import SentenceModel
texts = [x['combined_sentence'] for x in sentences]
model = SentenceModel('GanymedeNil/text2vec-large-chinese')
embeddings = model.encode(texts).tolist()
for i, sentence in enumerate(sentences):
sentence['combined_sentence_embedding'] = embeddings[i]
- 计算前后两个
combined_sentence_embedding
的余弦相似度
python
from sklearn.metrics.pairwise import cosine_similarity
def calculate_cosine_distances(sentences):
distances = []
for i in range(len(sentences) - 1):
embedding_current = sentences[i]['combined_sentence_embedding']
embedding_next = sentences[i + 1]['combined_sentence_embedding']
similarity = cosine_similarity([embedding_current], [embedding_next])[0][0]
distance = 1 - similarity
distances.append(distance)
sentences[i]['distance_to_next'] = distance
return distances, sentences
distances, sentences = calculate_cosine_distances(sentences)
- 选择切分点
python
import matplotlib.pyplot as plt
plt.plot(distances)
由于原始文本可以分成4个段落,所以这里取余弦距离较大的3个点分割段落。
python
# 预览
['小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。 《月令七十二候集解》中说:"十二月节,月初寒尚小,故云。月半则大矣。"冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。 我国民间有"冷在三九"的说法,而隆冬"三九"基本上处于小寒节气内,正所谓"天寒地冻北风吹,小寒时处二三九",因此有"小寒胜大寒"之讲法。 四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。 小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。 小寒时节处在"二九、三九"期间,此时东亚大槽发展得最为强大和稳定,蒙古冷高压和阿留申低压也最为强大、稳定,西风槽脊尺度达到最大,并配合最强的西风。因此,小寒时节冷空气降温过程频繁,冬季严寒天气影响范围达到最广的程度。此时不仅北方天寒地冻,南方也异常寒凉,温度在一年的小寒大寒之际降到最低。很多城市小寒的气温比大寒更低,在我国北方地区流传着"小寒胜大寒,常见不稀罕"的说法。在全国的大城市中,有12个城市的极端最低气温出现在小寒节气,包括沈阳、合肥、济南、太原、重庆、贵阳、拉萨、西安、上海、海口、南宁和成都。作为最容易受到冷空气影响的新疆北部和东北大部,此时的风雪天气往往很强。寒意之刺骨,冷风之凛冽,雪花之轻盈,共同造就了小寒的本色。 "莫怪严凝切,春冬正月交",虽然此时正处寒冷时节,但即将迎来冬春相交的时分。天地清冷,万物雪藏,隆冬数九,新岁将至,大自然正在这片沉寂之中悄悄孕育新生。',
'小寒时节,在我国北方冬麦区,翠绿色的小麦正在酝酿着一场春的勃发。有农谚为证,"小寒见三白,农家衣食足"。在小寒时节,夜晚出现结霜,称为"一白";水结成了冰,称为"二白";如若下雪,则称为"三白"。小寒节气出现"三白"意味着天气非常寒冷。小麦盖上厚厚的积雪,可以起到保温保湿的作用,为小麦丰收打下基础。"冬天麦盖三层被,来年枕着馒头睡",说的就是这个道理。 小寒时节,南方地区要注意给小麦、油菜等作物追施冬肥,做好防寒防冻、积肥造肥和兴修水利等工作。在冬前浇好冻水、施足冬肥、培土壅根的基础上,寒冬季节采用人工覆盖法也是防御农作物冻害的重要措施。在寒潮或强冷空气来临前,泼浇稀粪水,撒施草木灰,可有效减轻低温对油菜的危害。露地栽培的蔬菜地可将作物秸秆、稻草等稀疏地撒在菜畦上作为冬季长期覆盖物,既不影响光照,又可阻挡地面热量散失,起到保温防冻的效果。',
'大棚蔬菜以预防灾害性天气为主。一般采取增温炉或多层覆盖等增温措施,天气晴朗的时候放风排湿,降低灰霉病、叶霉病等病害的感染概率。这时要尽量多照阳光,即使出现雨雪低温天气,棚外草帘等覆盖物也不可连续多日不揭,以免影响植株正常的光合作用,造成营养匮乏。',
'高山茶园特别是西北向易受寒风侵袭的茶园,要以稻草、杂草或塑料薄膜覆盖篷面,以防止引起枯梢和沙暴对叶片的直接危害。雪后,应及早摇落果树枝条上的积雪,避免大风造成枝干断裂。小麦(江北)特别是稻茬麦要覆盖土杂肥以防冻害,油菜(江南)注意开沟排水,施肥以有机肥为主。 麦待春风,果吐芽铃,山茶正雅,水芹味浓......小寒时节,在大雁的飞羽下、喜鹊的新巢中、山鸡的啼鸣里,酝酿着一个洋溢着生机又饱含着希望的开始。']
分析
原始文本共有3个段落,分别由3,4,5个句子构成。然而根据上述切分结果来看,大多数句子集中在第一段,而后面段落则划分较少的句子。主要原因应该是SentenceModel模型支持的长度只有512,而前面构造出的combined_sentence
已经超过这个长度了,因此效果会大打折扣,后续可以考虑用jina的8k模型。