国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

三種文本相似計算方法:規則、向量與大模型裁判

發布于 2025-2-11 12:48
瀏覽
0收藏

文本相似計算

介紹

有一些工作需要評估出兩個字符串之間的相似程度。比如,要評估大模型生成的結果,與預設定的答案之間的相似程度。本文介紹三類方法用于評估兩個字符串的相似程度:規則、向量、大模型裁判。

  • 規則:基于字符 n-gram 的相似計算,常用算法,ROUGE、BLEU;
  • 向量:使用熱門的嵌入模型(Jina),把字符串編碼為向量,計算兩個向量之間的相似度;
  • 大模型裁判:使用大模型評估兩個字符串之間的相關性;

摘要

介紹了三種方法,評估兩個字符串之間的相似度:基于字符 n-gram 的規則算法,通過嵌入模型將文本編碼為向量并計算余弦相似度,以及使用大模型直接評判文本相關性。文章詳細探討了這些方法的實現細節及適用場景,并提供了 Python 示例代碼,幫助讀者理解和應用不同的方法來滿足具體需求。

規則

Find a metric on the Hub

本篇文章主要關注 Metric 方面的評估

Metric: measures the performance of a model on a given dataset, usually by comparing the model's predictions to some ground truth labels -- these are covered in this space.

裝包,主要依賴 nltk 這個包:

pip install transformers evaluate

眾多的自然語言處理評估方法會發布在 evaluate 這個包上。

google_bleu 網頁,若想瀏覽更多的例子請點擊查看,??https://huggingface.co/spaces/evaluate-metric/google_bleu??

三種文本相似計算方法:規則、向量與大模型裁判-AI.x社區

從 ??evaluate?? 加載工具的時候,需要科 學 上 網,解決方案如下:

  • 梯 子 開啟全局代理;
  • 嘗試把下述代理,加入到python代碼,7890是clash的端口

import os
  os.environ['HTTP_PROXY'] = 'http://127.0.0.1:7890'
  os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:7890'


import evaluate
google_bleu = evaluate.load("google_bleu")

sentence1 = "the cat sat on the mat"
sentence2 = "the cat ate the mat"
result1 = google_bleu.compute(predictinotallow=[sentence1], references=[[sentence2]])
print(result1)
# result1 {'google_bleu': 0.3333333333333333}


result2 = google_bleu.compute(predictinotallow=[sentence1], references=[[sentence1]])
print(result2)
# result2 {'google_bleu': 1.0}

【注意】:references 是一個嵌套的二維列表。

references 設計為二維列表的原因是,針對同一個問題,可能有多個回答,最終的結果是返回與多個結果計算google_bleu的最大值。

predictions = ["The cat is on the mat."]
references = [["The cat is on the mat.", "There is a cat on the mat."]]
print(google_bleu.compute(predictinotallow=predictions, references=references))
>>> {'google_bleu': 1.0}

下述是中文的例子:

google_bleu.compute(
    predictinotallow=["我愛你"], 
    references=[["我愛我的祖國"]]
)
# >>> {'google_bleu': 0.0}

上述 ??我愛你??? 和 ??我愛我的祖國?? 如上述所示,google_bleu 不會原生支持漢字,原因在于英文可直接按照空格拆分開,但是漢語之間沒有空格。比如, ["我愛我的祖國"] 可拆分為:

  • ["我 愛 我 的 祖 國"] ,
  • ["我 愛 我 的 祖國"] , 祖國中間沒有空格分開

顯然 ??祖國??? 作為一個詞更好,若拆分為 ??祖和國?? 兩個字則會丟失原來的語義信息。

google_bleu.compute(
    predictinotallow=["我 愛 你"], 
    references=[["我 愛 我 的 祖 國"]]
)
# >>> {'google_bleu': 0.16666666666666666}

google_bleu.compute(
    predictinotallow=["我 愛 你"], 
    references=[["我 愛 我 的 祖國"]]
)
# >>> {'google_bleu': 0.21428571428571427}

使用合適的中文分詞技術,可提高 google_bleu 分數。如上所示,??祖國??? 變成一個詞后,google_bleu 從0.16 提高到 0.21。如果想嘗試中文分詞技術,可嘗試使用??pip install jieba??,支持添加新詞到字典中。

向量

使用經過訓練的嵌入模型,把文本編碼為向量,再計算兩個向量的余弦相似度。瀏覽 jina-embeddings-v2-base-zh 的介紹, https://modelscope.cn/models/jinaai/jina-embeddings-v2-base-zh

下述是一個簡單的例子:

!pip install modelscope
from modelscope import AutoModel
from numpy.linalg import norm

cos_sim = lambda a,b: (a @ b.T) / (norm(a)*norm(b))
# trust_remote_code is needed to use the encode method
model = AutoModel.from_pretrained('jinaai/jina-embeddings-v2-base-zh', trust_remote_code=True) 
embeddings = model.encode(['How is the weather today?', '今天天氣怎么樣?'])
print(cos_sim(embeddings[0], embeddings[1]))

import numpy as np
from numpy.linalg import norm
from modelscope import AutoModel

# 定義余弦相似度計算函數
cos_sim = lambda a, b: (a @ b.T) / (norm(a) * norm(b))


# 加載模型
model = AutoModel.from_pretrained('jinaai/jina-embeddings-v2-base-zh', trust_remote_code=True)

# 輸入字符串和候選字符串
input_string = 'How is the weather today?'
candidates = ['今天天氣怎么樣?', '我今天很高興', '天氣預報說今天會下雨', '你最喜歡的顏色是什么?']

# 計算輸入字符串的嵌入向量
input_embedding = model.encode([input_string])[0]

# 計算候選字符串的嵌入向量
candidate_embeddings = model.encode(candidates)

# 計算相似度并排序
similarities = [cos_sim(input_embedding, candidate_embedding) for candidate_embedding in candidate_embeddings]
sorted_candidates = sorted(zip(candidates, similarities), key=lambda x: x[1], reverse=True)

# 輸出排序結果
for candidate, similarity in sorted_candidates:
    print(f"({input_string} - {candidate}), Similarity: {similarity:.4f}")

上面代碼展示了,計算 input_string 與 candidates 候選字符串之間的向量余弦相似度分數,按照從高到低排序:

Downloading Model to directory: C:\Users\user_name\.cache\modelscope\hub\jinaai/jina-embeddings-v2-base-zh
(How is the weather today? - 今天天氣怎么樣?), Similarity: 0.7861
(How is the weather today? - 天氣預報說今天會下雨), Similarity: 0.5470
(How is the weather today? - 我今天很高興), Similarity: 0.4202
(How is the weather today? - 你最喜歡的顏色是什么?), Similarity: 0.1032

大模型裁判

制定一個基于規則的程序來評估輸出是非常具有挑戰性的。傳統的評估指標,基于輸出和參考答案之間的相似性(例如,ROUGE、BLEU;),對于這些問題也無效。[1] 在復雜場景下,可嘗試使用大模型進行判決。

主要針對復雜的場景,在基于規則與向量相似度均效果不顯著的情況下,可嘗試使用LLM進行判決。

提示詞參考:

JUDGE_PROMPT = """
You will be given a user_question and system_answer couple.
Your task is to provide a 'total rating' scoring how well the system_answer answers the user concerns expressed in the user_question.
Give your answer as a float on a scale of 0 to 10, where 0 means that the system_answer is not helpful at all, and 10 means that the answer completely and helpfully addresses the question.

Provide your feedback as follows:

Feedback:::
Total rating: (your rating, as a float between 0 and 10)

Now here are the question and answer.

Question: {question}
Answer: {answer}

Feedback:::
Total rating: """

參考資料

  1. 使用 LLM 作為評判者?????進行自動化和多方面的評估
  2. ??https://github.com/huggingface/evaluate ??

本文轉載自??AI悠閑區??,作者: jieshenai ????

收藏
回復
舉報
回復
相關推薦
99免费视频观看| 国产精品人人做人人爽| 大肉大捧一进一出好爽视频| 99久久激情| 欧美一级专区免费大片| 亚洲高清在线免费观看| 日韩影院在线观看| 成人性生交大片免费看小说| 欧美中文高清| 欧美一级二级在线观看| 中文字幕国产在线| 国产超碰在线一区| 精品欧美国产| 久久视频在线| 91精品国产91久久久久久不卡| 好吊日视频在线观看| 亚洲电影一级黄| 国产黄色特级片| 国产精品综合在线视频| 国产精品二区在线观看| 国产一区二区三区不卡视频网站| 亚洲人成亚洲人成在线观看| 男人资源在线播放| 精品久久久久久久久久久久| 国产一区二区在线免费播放| 不卡的av电影| 杨幂一区欧美专区| 一本色道久久精品| 亚洲一区二区三区在线免费观看| 日韩中文字幕| 中文字幕国产日韩| 免费在线小视频| 欧美一级高清片在线观看| 羞羞视频网站在线观看| 一区二区三区视频在线看| www.99在线| 久久精品一级爱片| 男女猛烈激情xx00免费视频| 国产精品自拍毛片| 欧美一级特黄aaaaaa在线看片| 日日夜夜一区二区| 欧美日韩在线播放一区二区| 亚洲中字黄色| 日本不卡一区| 免费成人美女在线观看.| 色乱码一区二区三在线看| 亚洲区一区二| 欧美高清视频一区| 久久天堂精品| 一区二区三区四区欧美日韩| 久久99久久99小草精品免视看| 午夜精品一区二区在线观看的 | 精品女同一区二区三区在线播放| 羞羞网站在线观看入口免费| 日韩美女视频19| 手机福利视频欧美| 欧美日韩一区二区三区在线免费观看 | 97av影视网在线观看| 伊人久久大香线蕉综合四虎小说 | 伊人成人在线| 精品久久蜜桃| 另类中文字幕网| 糖心vlog在线免费观看| 99久久综合99久久综合网站| 国产野外作爱视频播放| 亚洲另类在线制服丝袜| 欧美色图另类| 精品福利在线导航| 自拍偷拍亚洲图片| 欧美有码在线视频| 欧美体内she精视频在线观看| 久久国产精品 国产精品| 精品一区二区综合| 男人操女人免费| 天天综合网天天综合色| 青草av在线| 欧美黑人巨大精品一区二区| 成人在线国产| 亚洲国产精品一区二区第一页| 成人黄色av电影| 福利片免费在线观看| 精品视频全国免费看| 国偷自产一区二区免费视频| 51精品国产黑色丝袜高跟鞋| 亚洲经典自拍| 男人天堂999| 在线观看一区二区视频| 91tv亚洲精品香蕉国产一区| 国产成人激情视频| 日韩激情中文字幕| 成人影院在线观看视频| 欧美日韩精品一区二区三区| 成人在线免费| av在线不卡一区| 99国产精品久久久久| 男同在线观看| 亚洲视频在线播放| 日韩久久综合| 天堂а√在线中文在线| 午夜精品久久久久久久久久久| av电影在线免费| 日韩免费av片在线观看| 久久成人国产| 九七影院97影院理论片免费| 日韩欧美一二区| 久久视频免费| 青娱乐国产91| 亚洲影视在线播放| 精品三级在线| 麻豆av一区二区三区久久| 国产精品久久夜| av成人福利| 91九色对白| 中文字幕在线一区二区三区| 欧美aa免费在线| 99精品欧美一区二区三区| eeuss国产一区二区三区 | 91黑丝在线| 日韩经典中文字幕| 综合激情一区| 欧美午夜精品久久久久久久| 91一区二区三区在线观看| 日韩精品分区| 99久久er热在这里只有精品15| 神马久久精品| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 中文字幕国产亚洲| 美女精品一区| 在线中文av| 国语自产精品视频在免费| 国产酒店精品激情| 日本三级视频在线播放| 国产精品久久97| 中文字幕一区在线观看| 超碰国产精品一区二页| 一级黄色录像免费看| 欧美美女一区二区三区| 91精品啪在线观看国产81旧版 | 99er在线视频| 日韩一卡二卡三卡国产欧美| 在线视频一区二区三区| 亚洲一区欧美一区| 国产精品高潮久久| 视频三区二区一区| 在线观看精品一区| 精品在线91| 性chinese极品按摩| 久久天天躁夜夜躁狠狠躁2022| 黄页视频在线91| 欧美人动性xxxxz0oz| 国语精品中文字幕| 91久久精品网| 亚洲v在线看| 国产美女极品在线| 国产精品亚洲精品| 午夜激情一区二区| 影音先锋日韩精品| 久热av在线| 动漫一区二区在线| 国产精品第8页| av高清在线| 国产精品欧美亚洲777777| 美女国内精品自产拍在线播放| 欧美一区第一页| 国产96在线 | 亚洲| 日韩资源在线| 国产精品久久久久久久久久久久久久久| 欧美精品九九| 国产精品毛片高清在线完整版| 亚洲欧美色婷婷| 国内视频一区| 中文资源在线网| 欧美wwwwww| 成人高清伦理免费影院在线观看| 5858s免费视频成人| 99一区二区三区| 黄色漫画在线免费观看| 蜜桃麻豆www久久国产精品| 中文字幕欧美日韩在线| 一区二区三区91| 丁香亚洲综合激情啪啪综合| 性欧美xxxx免费岛国不卡电影| 黄色毛片视频| 欧美日韩精品免费看| 精品偷拍一区二区三区在线看 | 无码aⅴ精品一区二区三区浪潮 | 一区二区三区高清国产| 久久电影网站中文字幕| 天堂中文在线播放| 一区二区三区不卡在线| 中文字幕亚洲欧美日韩在线不卡| 国产成人午夜片在线观看高清观看| 午夜电影一区| av伦理在线| 中文字幕在线免费播放| 最新国产精品久久| av蓝导航精品导航| 成人黄色中文字幕| 欧美一级bbbbb性bbbb喷潮片| 在线观看一区二区三区三州|