大语言模型常见的文本切分之语义嵌入

发布时间:2024年01月24日

语料准备

选择了一篇新闻稿,有比较明显的段落区分,每个段落由若干句子构成,可用于验证切分效果。

# 节气释义
小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。

《月令七十二候集解》中说:“十二月节,月初寒尚小,故云。月半则大矣。”冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。

我国民间有“冷在三九”的说法,而隆冬“三九”基本上处于小寒节气内,正所谓“天寒地冻北风吹,小寒时处二三九”,因此有“小寒胜大寒”之讲法。

# 物侯特点
四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。

小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。

小寒时节处在“二九、三九”期间,此时东亚大槽发展得最为强大和稳定,蒙古冷高压和阿留申低压也最为强大、稳定,西风槽脊尺度达到最大,并配合最强的西风。因此,小寒时节冷空气降温过程频繁,冬季严寒天气影响范围达到最广的程度。此时不仅北方天寒地冻,南方也异常寒凉,温度在一年的小寒大寒之际降到最低。很多城市小寒的气温比大寒更低,在我国北方地区流传着“小寒胜大寒,常见不稀罕”的说法。在全国的大城市中,有12个城市的极端最低气温出现在小寒节气,包括沈阳、合肥、济南、太原、重庆、贵阳、拉萨、西安、上海、海口、南宁和成都。作为最容易受到冷空气影响的新疆北部和东北大部,此时的风雪天气往往很强。寒意之刺骨,冷风之凛冽,雪花之轻盈,共同造就了小寒的本色。

“莫怪严凝切,春冬正月交”,虽然此时正处寒冷时节,但即将迎来冬春相交的时分。天地清冷,万物雪藏,隆冬数九,新岁将至,大自然正在这片沉寂之中悄悄孕育新生。

# 气候农事
小寒时节,在我国北方冬麦区,翠绿色的小麦正在酝酿着一场春的勃发。有农谚为证,“小寒见三白,农家衣食足”。在小寒时节,夜晚出现结霜,称为“一白”;水结成了冰,称为“二白”;如若下雪,则称为“三白”。小寒节气出现“三白”意味着天气非常寒冷。小麦盖上厚厚的积雪,可以起到保温保湿的作用,为小麦丰收打下基础。“冬天麦盖三层被,来年枕着馒头睡”,说的就是这个道理。

小寒时节,南方地区要注意给小麦、油菜等作物追施冬肥,做好防寒防冻、积肥造肥和兴修水利等工作。在冬前浇好冻水、施足冬肥、培土壅根的基础上,寒冬季节采用人工覆盖法也是防御农作物冻害的重要措施。在寒潮或强冷空气来临前,泼浇稀粪水,撒施草木灰,可有效减轻低温对油菜的危害。露地栽培的蔬菜地可将作物秸秆、稻草等稀疏地撒在菜畦上作为冬季长期覆盖物,既不影响光照,又可阻挡地面热量散失,起到保温防冻的效果。

大棚蔬菜以预防灾害性天气为主。一般采取增温炉或多层覆盖等增温措施,天气晴朗的时候放风排湿,降低灰霉病、叶霉病等病害的感染概率。这时要尽量多照阳光,即使出现雨雪低温天气,棚外草帘等覆盖物也不可连续多日不揭,以免影响植株正常的光合作用,造成营养匮乏。

高山茶园特别是西北向易受寒风侵袭的茶园,要以稻草、杂草或塑料薄膜覆盖篷面,以防止引起枯梢和沙暴对叶片的直接危害。雪后,应及早摇落果树枝条上的积雪,避免大风造成枝干断裂。小麦(江北)特别是稻茬麦要覆盖土杂肥以防冻害,油菜(江南)注意开沟排水,施肥以有机肥为主。

麦待春风,果吐芽铃,山茶正雅,水芹味浓......小寒时节,在大雁的飞羽下、喜鹊的新巢中、山鸡的啼鸣里,酝酿着一个洋溢着生机又饱含着希望的开始。


预处理

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

plt.plot(distances)

在这里插入图片描述
由于原始文本可以分成4个段落,所以这里取余弦距离较大的3个点分割段落。

# 预览
['小寒,是二十四节气中的第二十三个节气,太阳到达黄经285度时开始。 《月令七十二候集解》中说:“十二月节,月初寒尚小,故云。月半则大矣。”冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。 我国民间有“冷在三九”的说法,而隆冬“三九”基本上处于小寒节气内,正所谓“天寒地冻北风吹,小寒时处二三九”,因此有“小寒胜大寒”之讲法。 四季流转、节序交替,二十四节气的小寒伴随着凛冽的北风如约而至。这是世界上最有诗意的历法,一年一邂逅,往复更替,周而复始。到了小寒,一年当中最冷的时节就来了。 小寒于每年公历1月5日至7日交节,与大寒、小暑、大暑、处暑等一样,都是表示气温冷暖变化的节气。 小寒时节处在“二九、三九”期间,此时东亚大槽发展得最为强大和稳定,蒙古冷高压和阿留申低压也最为强大、稳定,西风槽脊尺度达到最大,并配合最强的西风。因此,小寒时节冷空气降温过程频繁,冬季严寒天气影响范围达到最广的程度。此时不仅北方天寒地冻,南方也异常寒凉,温度在一年的小寒大寒之际降到最低。很多城市小寒的气温比大寒更低,在我国北方地区流传着“小寒胜大寒,常见不稀罕”的说法。在全国的大城市中,有12个城市的极端最低气温出现在小寒节气,包括沈阳、合肥、济南、太原、重庆、贵阳、拉萨、西安、上海、海口、南宁和成都。作为最容易受到冷空气影响的新疆北部和东北大部,此时的风雪天气往往很强。寒意之刺骨,冷风之凛冽,雪花之轻盈,共同造就了小寒的本色。 “莫怪严凝切,春冬正月交”,虽然此时正处寒冷时节,但即将迎来冬春相交的时分。天地清冷,万物雪藏,隆冬数九,新岁将至,大自然正在这片沉寂之中悄悄孕育新生。',
 '小寒时节,在我国北方冬麦区,翠绿色的小麦正在酝酿着一场春的勃发。有农谚为证,“小寒见三白,农家衣食足”。在小寒时节,夜晚出现结霜,称为“一白”;水结成了冰,称为“二白”;如若下雪,则称为“三白”。小寒节气出现“三白”意味着天气非常寒冷。小麦盖上厚厚的积雪,可以起到保温保湿的作用,为小麦丰收打下基础。“冬天麦盖三层被,来年枕着馒头睡”,说的就是这个道理。 小寒时节,南方地区要注意给小麦、油菜等作物追施冬肥,做好防寒防冻、积肥造肥和兴修水利等工作。在冬前浇好冻水、施足冬肥、培土壅根的基础上,寒冬季节采用人工覆盖法也是防御农作物冻害的重要措施。在寒潮或强冷空气来临前,泼浇稀粪水,撒施草木灰,可有效减轻低温对油菜的危害。露地栽培的蔬菜地可将作物秸秆、稻草等稀疏地撒在菜畦上作为冬季长期覆盖物,既不影响光照,又可阻挡地面热量散失,起到保温防冻的效果。',
 '大棚蔬菜以预防灾害性天气为主。一般采取增温炉或多层覆盖等增温措施,天气晴朗的时候放风排湿,降低灰霉病、叶霉病等病害的感染概率。这时要尽量多照阳光,即使出现雨雪低温天气,棚外草帘等覆盖物也不可连续多日不揭,以免影响植株正常的光合作用,造成营养匮乏。',
 '高山茶园特别是西北向易受寒风侵袭的茶园,要以稻草、杂草或塑料薄膜覆盖篷面,以防止引起枯梢和沙暴对叶片的直接危害。雪后,应及早摇落果树枝条上的积雪,避免大风造成枝干断裂。小麦(江北)特别是稻茬麦要覆盖土杂肥以防冻害,油菜(江南)注意开沟排水,施肥以有机肥为主。 麦待春风,果吐芽铃,山茶正雅,水芹味浓......小寒时节,在大雁的飞羽下、喜鹊的新巢中、山鸡的啼鸣里,酝酿着一个洋溢着生机又饱含着希望的开始。']

分析

原始文本共有3个段落,分别由3,4,5个句子构成。然而根据上述切分结果来看,大多数句子集中在第一段,而后面段落则划分较少的句子。主要原因应该是SentenceModel模型支持的长度只有512,而前面构造出的combined_sentence已经超过这个长度了,因此效果会大打折扣,后续可以考虑用jina的8k模型。

文章来源:https://blog.csdn.net/qq_33137873/article/details/135793040
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。