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

LLMEmbedding

语料准备

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

# 节气释义 小寒,是二十四节气中的第二十三个节气,太阳到达黄经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)

不同分割值的效果.png

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

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

分析

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

评论

暂无评论

推荐阅读

llm构建数据标注助手
llm构建数据标注助手

在LLM出现之前,传统的深度学习模型就已经需要大量的数据进行训练和微调。没有足够的数据,或者数据需要进行二次加工,这些问题都成为限制深度学习模型泛化的关键。对于第一个问题,一般就是从网络上爬虫或者花大价钱从数据供应商购买数据;对于第二种情况,一般是找外包进行标注,这在业界非常普遍。