精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

大模型揭秘:如何從用戶評論中提煉金礦

原創(chuàng) 精選
人工智能
本文探討了如何利用大型語言模型和LangChain庫來分析和抽取用戶評論中的關(guān)鍵信息。文章首先描述了運(yùn)營團(tuán)隊(duì)面臨的挑戰(zhàn),即如何從大量的用戶評論中獲取有價(jià)值的數(shù)據(jù)。

作者 | 崔皓

審校 | 重樓

摘要

本文探討了如何利用大型語言模型和LangChain庫來分析和抽取用戶評論中的關(guān)鍵信息。文章首先描述了運(yùn)營團(tuán)隊(duì)面臨的挑戰(zhàn),即如何從大量的用戶評論中獲取有價(jià)值的數(shù)據(jù)。然后,介紹了使用LangChain的extraction chain和tagging chain來解決這一問題的具體步驟和代碼實(shí)現(xiàn)。最后,文章還探討了如何通過雷達(dá)圖可視化用戶反饋,以更直觀地了解用戶對產(chǎn)品或服務(wù)的感受。

開篇

你有沒有遇到過這樣的場景?公司的運(yùn)營團(tuán)隊(duì)需要通過用戶評論來了解一個(gè)新產(chǎn)品在市場上的接受程度,以便更好地制定未來的運(yùn)營策略。爬用戶評論雖然容易但是抽取和分析數(shù)據(jù)是個(gè)難題。

在大型語言模型之前,數(shù)據(jù)分析依賴于基礎(chǔ)統(tǒng)計(jì)、手工標(biāo)簽和簡單機(jī)器學(xué)習(xí)模型。這些方法不僅耗時(shí)耗力,還需要專業(yè)工具和復(fù)雜的規(guī)則維護(hù)。因此,分析大規(guī)?;蚍墙Y(jié)構(gòu)化數(shù)據(jù)往往效果有限。處理用戶評論這樣非結(jié)構(gòu)化的數(shù)據(jù),為大型語言模型的應(yīng)用提供了廣闊的舞臺(tái)。

需求背景

在當(dāng)前的商業(yè)環(huán)境下,用戶評論已經(jīng)成為了衡量產(chǎn)品或服務(wù)質(zhì)量的重要指標(biāo)。運(yùn)營團(tuán)隊(duì)經(jīng)常需要依賴這些信息來調(diào)整產(chǎn)品特性或優(yōu)化營銷策略。但是,如何從大量的用戶評論中提取有用信息,然后將這些信息轉(zhuǎn)化為可行的戰(zhàn)略,仍然是一個(gè)挑戰(zhàn)。

我們一些用戶評論的例子分析一下,我們從網(wǎng)絡(luò)爬取了一些用戶的評論信息,從信息上可以看出用戶針對手機(jī)產(chǎn)品的一些特性進(jìn)行了評論,包括攝像頭,屏幕,性能等。在評論內(nèi)容中還帶有一些用戶的個(gè)人感情,例如:客服給力,非常滿意等等。

風(fēng)之子: 我剛?cè)胧秩A為的新款手機(jī),電池續(xù)航讓我大吃一驚,真是不錯(cuò)!攝像頭表現(xiàn)一般,但屏幕顏色非常出色。手感很好,流暢度也很高。外觀方面,我覺得挺時(shí)尚的??偟膩碚f,我非常滿意這臺(tái)手機(jī),性價(jià)比非常高,用起來也很可靠??爝f也很快,我一定會(huì)推薦給朋友。
月光仙子: 這款華為手機(jī)手感超好,操作非常流暢,客服也很給力。產(chǎn)品質(zhì)量優(yōu)秀,物流速度也快,外觀非常吸引我,非常滿意。
獨(dú)孤求敗: 攝像頭是這款華為手機(jī)的一大亮點(diǎn),但電池續(xù)航有點(diǎn)短。外觀設(shè)計(jì)一般,品牌信譽(yù)也還行。產(chǎn)品質(zhì)量不錯(cuò),但可靠性一般,性價(jià)比也就一般。
劍圣: 用了一段時(shí)間這款華為,外觀很贊,操作也流暢。品牌也是我信賴的。不過屏幕有點(diǎn)讓人失望,功能還算齊全??傮w來說,性價(jià)比還是不錯(cuò)的。
小白龍: 個(gè)人不太喜歡這款華為手機(jī)的外觀,但性價(jià)比很高,操作流暢度也不錯(cuò)。攝像頭性能強(qiáng)大,但屏幕顯示效果一般。個(gè)性化需求滿足度一般,不確定是否推薦給朋友。
雷霆之怒: 這款華為手機(jī)是個(gè)好東西,電池續(xù)航很長,攝像頭表現(xiàn)也相當(dāng)專業(yè)。用戶體驗(yàn)上,我覺得是非常好的,流暢度高,一定會(huì)推薦給別人。
夜行者: 這款華為手機(jī)的屏幕是亮點(diǎn),但電池上稍微不如意。物流速度一般,外觀也挺好看的,總體滿意度一般。
魔法少女: 我覺得這款華為手機(jī)在功能完整性上做得非常好,而且手感很不錯(cuò)。客服態(tài)度也好,就是物流速度一般。品牌信譽(yù)很高。
暗夜精靈: 實(shí)際使用下來,這款華為手機(jī)流暢度很好,而且非??煽俊?爝f速度也非???,品牌也是值得信賴的。
星河戰(zhàn)士: 這款華為手機(jī)性價(jià)比高,電池和屏幕都不錯(cuò)。滿足了我所有的個(gè)性化需求,外觀設(shè)計(jì)也很有特點(diǎn),我一定會(huì)推薦給其他人。

最直接的想法就是從這些評論中把關(guān)于商品的部分抽取出來,看看大家對我們的產(chǎn)品認(rèn)可程度如何。

抽取產(chǎn)品信息

既然目標(biāo)是了解用戶對產(chǎn)品的看法,就先從產(chǎn)品下手。關(guān)于信息抽取, LangChain集成了OpenAI的extraction 功能,并且將其封裝成了一個(gè)Chain如下。

langchain.chains.openai_functions.extraction.create_extraction_chain(schema: dict, llm: BaseLanguageModel, prompt: Optional[BasePromptTemplate] = None, verbose: bool = False) → Chain
Parameters
?schema – The schema of the entities to extract.
?llm – The language model to use.
?prompt – The prompt to use for extraction.
?verbose – Whether to run in verbose mode. In verbose mode, some intermediate logs will be printed to the console. Defaults to langchain.verbose value.
Returns
Chain that can be used to extract information from a passage.

這里對這個(gè)類稍微做一下解釋。

通過create_extraction_chain創(chuàng)建一個(gè)chain,用來信息的抽取,輸入的參數(shù)如下:

  • Schema這是一個(gè)字典,描述了需要從文本中提取哪些實(shí)體。
  • Llm語言模型實(shí)例。
  • Prompt提示模板,用于生成模型輸入。
  • Verbose是否在控制臺(tái)打印中間日志。

返回值是一個(gè) Chain 對象,該對象可以用于從文本中提取信息。

在參數(shù)中schema很重要,我們需要定義抽取信息的屬性值。

程序設(shè)計(jì)

有了基本思路,查找了功能實(shí)現(xiàn)以后,我們可以根據(jù)這個(gè)功能設(shè)計(jì)一下應(yīng)用程序。如下圖所示,用戶請求的時(shí)候會(huì)將用戶評論的信息給到應(yīng)用程序。應(yīng)用程序利用LangChain中extraction chain 調(diào)用大模型抽取用戶評論中關(guān)于商品信息的描述,在抽取過程中它會(huì)依賴schema文件,這個(gè)文件會(huì)定義哪些商品屬性需要進(jìn)行抽取。

由于LangChain中extraction chain的功能支持openai的模型,因此我們選擇GPT-3.5的版本。接著就是如何定義Schema的問題了。 schema中定義的是商品屬性信息,如果運(yùn)營小妹來提這個(gè)需求一定是越多越好,不過通過對用戶評論的分析,和運(yùn)營小妹一頓周旋之后,我們把schema的屬性定義如下:

schema = {
"properties": {
"用戶名": {"type": "string"},
"電池": {"type": "string"},
"攝像頭": {"type": "string"},
"屏幕": {"type": "string"},
"手感": {"type": "string"},
"流暢度": {"type": "string"},
"外觀": {"type": "string"},
"品牌": {"type": "string"}
 },
"required": ["用戶名"]
}

主要在電池,攝像頭,屏幕,手感,流暢度,外觀和品牌上。

商品信息抽?。捍a實(shí)現(xiàn)

有了業(yè)務(wù)需求加設(shè)計(jì)思路,就可以擼代碼了。為了方便給大家展示,這里的用戶評論信息,我們放到了inp變量中保存,一般而言應(yīng)該是從網(wǎng)絡(luò)爬取之后保存到本地文件或者是數(shù)據(jù)庫中。然后,再讀取使用,我們這里簡化了過程,將關(guān)注點(diǎn)放到如何使用大模型和LangChain上面。

from langchain.chat_models import ChatOpenAI
from langchain.llms.baidu_qianfan_endpoint import QianfanLLMEndpoint
from langchain.chains import create_extraction_chain

# Schema
schema = {
    "properties": {
        "用戶名": {"type": "string"},
        "電池": {"type": "string"},
        "攝像頭": {"type": "string"},
        "屏幕": {"type": "string"},
        "手感": {"type": "string"},
        "流暢度": {"type": "string"},
        "外觀": {"type": "string"},
        "品牌": {"type": "string"}
    },
    "required": ["用戶名"]
}

# Input
inp = """
風(fēng)之子: 我剛?cè)胧秩A為的新款手機(jī),電池續(xù)航讓我大吃一驚,真是不錯(cuò)!攝像頭表現(xiàn)一般,但屏幕顏色非常出色。手感很好,流暢度也很高。外觀方面,我覺得挺時(shí)尚的??偟膩碚f,我非常滿意這臺(tái)手機(jī),性價(jià)比非常高,用起來也很可靠??爝f也很快,我一定會(huì)推薦給朋友。
月光仙子: 這款華為手機(jī)手感超好,操作非常流暢,客服也很給力。產(chǎn)品質(zhì)量優(yōu)秀,物流速度也快,外觀非常吸引我,非常滿意。
獨(dú)孤求敗: 攝像頭是這款華為手機(jī)的一大亮點(diǎn),但電池續(xù)航有點(diǎn)短。外觀設(shè)計(jì)一般,品牌信譽(yù)也還行。產(chǎn)品質(zhì)量不錯(cuò),但可靠性一般,性價(jià)比也就一般。
劍圣: 用了一段時(shí)間這款華為,外觀很贊,操作也流暢。品牌也是我信賴的。不過屏幕有點(diǎn)讓人失望,功能還算齊全??傮w來說,性價(jià)比還是不錯(cuò)的。
小白龍: 個(gè)人不太喜歡這款華為手機(jī)的外觀,但性價(jià)比很高,操作流暢度也不錯(cuò)。攝像頭性能強(qiáng)大,但屏幕顯示效果一般。個(gè)性化需求滿足度一般,不確定是否推薦給朋友。
雷霆之怒: 這款華為手機(jī)是個(gè)好東西,電池續(xù)航很長,攝像頭表現(xiàn)也相當(dāng)專業(yè)。用戶體驗(yàn)上,我覺得是非常好的,流暢度高,一定會(huì)推薦給別人。
夜行者: 這款華為手機(jī)的屏幕是亮點(diǎn),但電池上稍微不如意。物流速度一般,外觀也挺好看的,總體滿意度一般。
魔法少女: 我覺得這款華為手機(jī)在功能完整性上做得非常好,而且手感很不錯(cuò)。客服態(tài)度也好,就是物流速度一般。品牌信譽(yù)很高。
暗夜精靈: 實(shí)際使用下來,這款華為手機(jī)流暢度很好,而且非??煽?。快遞速度也非常快,品牌也是值得信賴的。
星河戰(zhàn)士: 這款華為手機(jī)性價(jià)比高,電池和屏幕都不錯(cuò)。滿足了我所有的個(gè)性化需求,外觀設(shè)計(jì)也很有特點(diǎn),我一定會(huì)推薦給其他人。
"""


# Initialize the ChatOpenAI model
llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo")

# Create the extraction chain
chain = create_extraction_chain(schema, llm)

# Run the chain
results = chain.run(inp)

# 'results' 變量將包含抽取的信息。

代碼不復(fù)雜,這里簡單解釋一下:

1. 定義提取模式(Schema): 使用一個(gè)名為 `schema` 的字典來定義我們希望從用戶評論中提取哪些信息。這里包括用戶名、電池、攝像頭等多個(gè)維度。

2. 初始化自然語言模型: 創(chuàng)建一個(gè)名為 `llm` 的 `ChatOpenAI` 對象,這是 GPT-3.5-turbo 模型的一個(gè)封裝。這個(gè)對象將負(fù)責(zé)后續(xù)的文本生成和理解。

3. 創(chuàng)建信息提取鏈: 使用 `create_extraction_chain` 函數(shù),結(jié)合之前定義的 `schema` 和初始化的模型 `llm`,生成一個(gè)信息提取鏈,存儲(chǔ)為 `chain` 變量。

4. 運(yùn)行信息提取: 最后,使用 `chain.run(inp)` 方法運(yùn)行這個(gè)信息提取鏈,它將分析輸入的用戶評論(存儲(chǔ)在 `inp` 變量中)并將結(jié)果保存在 `results` 變量中。

Results的輸出結(jié)果如下:

[{'用戶名': '風(fēng)之子', '電池': '續(xù)航', '攝像頭': '表現(xiàn)', '屏幕': '顏色', '手感': '好', '流暢度': '高', '外觀': '時(shí)尚', '品牌': '華為'}, 
{'用戶名': '月光仙子', '手感': '好', '流暢度': '流暢', '外觀': '吸引', '品牌': '華為'}, {'用戶名': '獨(dú)孤求敗', '攝像頭': '亮點(diǎn)', '電池': '續(xù)航', '外觀': '設(shè)計(jì)', '品牌': '華為'}, {'用戶名': '劍圣', '外觀': '贊', '操作': '流暢', '品牌': '華為'}, 
{'用戶名': '小白龍', '外觀': '不喜歡', '性價(jià)比': '高', '操作': '流暢', '攝像頭': '強(qiáng)大', '屏幕': '顯示效果', '個(gè)性化需求': '滿足'}, 
{'用戶名': '雷霆之怒', '電池': '續(xù)航', '攝像頭': '專業(yè)', '用戶體驗(yàn)': '好', '流暢度': '高'}, 
{'用戶名': '夜行者', '屏幕': '亮點(diǎn)', '電池': '不如意', '物流速度': '一般', '外觀': '好看'}, 
{'用戶名': '魔法少女', '功能完整性': '好', '手感': '不錯(cuò)', '客服態(tài)度': '好', '物流速度': '一般', '品牌信譽(yù)': '高'}, 
{'用戶名': '暗夜精靈', '流暢度': '好', '可靠性': '可靠', '快遞速度': '快', '品牌': '值得信賴'}, 
{'用戶名': '星河戰(zhàn)士', '性價(jià)比': '高', '電池': '不錯(cuò)', '屏幕': '不錯(cuò)', '個(gè)性化需求': '滿足', '外觀設(shè)計(jì)': '特點(diǎn)'}]

看!簡單四步搞定數(shù)據(jù)分析,運(yùn)營小妹看了直拍手,不過仔細(xì)看看,用戶的情感似乎沒有在輸出中體現(xiàn)出來。

需求變更

能夠獲取商品的信息固然是不錯(cuò),但是如果能夠?qū)⒂脩舻那楦行畔⒁惨徊⒊槿〕鰜砭屯昝懒?,既然運(yùn)營小妹有需求,程序員就有辦法。

實(shí)際上用戶的情感,是對產(chǎn)品和服務(wù)而言的,綜合“借鑒”了其他系統(tǒng)的用戶服務(wù)滿意表,得出如下維度是我們需要關(guān)注的:滿意度,商品質(zhì)量,性價(jià)比,用戶體驗(yàn),客戶服務(wù),推薦意愿,功能完整性,交付速度,可靠性,可行話需求滿足度。一般對這些服務(wù)都會(huì)進(jìn)行評分,什么 非常滿意,“滿意”,“一般”等等,分了很多級(jí)別。這種功能好像extraction chain 就不能實(shí)現(xiàn)了,不要緊程序員有辦法,通過對langchainapi的翻找,找到了tagging chain這個(gè)類。

langchain.chains.openai_functions.tagging.create_tagging_chain(schema: dict, llm: BaseLanguageModel, prompt: Optional[ChatPromptTemplate] = None, **kwargs: Any) → Chain[source]
Creates a chain that extracts information from a passage
based on a schema.
Parameters
?schema – The schema of the entities to extract.
?llm – The language model to use.
Returns
Chain (LLMChain) that can be used to extract information from a passage.

代碼還是老套路,我們依舊需要定義shcema,告訴大模型我們要抽取的數(shù)據(jù)類型。

程序再設(shè)計(jì)

有了需求思路,也能夠通過技術(shù)實(shí)現(xiàn),接著我們把設(shè)計(jì)稍微調(diào)整一下。如下圖所示,和extraction chain組件一樣,我們加入了tagging chain組件,他們之間是平行關(guān)系,都需要接受用戶傳入的用戶評論信息,同時(shí)利用schema定義的屬性,調(diào)用大模型完成信息的抽取。

情感信息抽?。捍a實(shí)現(xiàn)

程序設(shè)計(jì)比較簡,程序員小哥離勝利更進(jìn)一步了??禳c(diǎn)開始擼代碼吧,今天下班還有約會(huì)!

from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.chains import create_tagging_chain, create_tagging_chain_pydantic

# 定義schema,用于描述我們想要標(biāo)記的屬性
schema = {
    "properties": {
        "滿意度": {
            "type": "string",
            "enum": ["非常滿意", "滿意", "一般", "不滿意", "非常不滿意"],
            "description": "描述對產(chǎn)品或服務(wù)的整體滿意度"
        },
        "產(chǎn)品質(zhì)量": {
            "type": "string",
            "enum": ["優(yōu)秀", "良好", "一般", "差勁"],
            "description": "描述產(chǎn)品的質(zhì)量"
        },
        "性價(jià)比": {
            "type": "string",
            "enum": ["非常高", "高", "一般", "低"],
            "description": "描述產(chǎn)品的性價(jià)比"
        },
        "用戶體驗(yàn)": {
            "type": "string",
            "enum": ["非常好", "好", "一般", "差"],
            "description": "描述用戶體驗(yàn)"
        },
        "客戶服務(wù)": {
            "type": "string",
            "enum": ["非常滿意", "滿意", "一般", "不滿意"],
            "description": "描述客戶服務(wù)"
        },
        "推薦意愿": {
            "type": "string",
            "enum": ["一定會(huì)", "可能會(huì)", "不確定", "不會(huì)"],
            "description": "描述推薦意愿"
        },
        "功能完整性": {
            "type": "string",
            "enum": ["非常好", "好", "一般", "差"],
            "description": "描述功能完整性"
        },
        "交付速度": {
            "type": "string",
            "enum": ["非???, "快", "一般", "慢"],
            "description": "描述交付速度"
        },
        "可靠性": {
            "type": "string",
            "enum": ["非??煽?, "可靠", "一般", "不可靠"],
            "description": "描述可靠性"
        },
        "個(gè)性化需求滿足度": {
            "type": "string",
            "enum": ["非常滿意", "滿意", "一般", "不滿意"],
            "description": "描述個(gè)性化需求滿足度"
        }
    },
    "required": ["滿意度", "產(chǎn)品質(zhì)量", "性價(jià)比"]  # 示例中一些必須要有的屬性
}

# 初始化LLM模型
llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo")

# 創(chuàng)建標(biāo)記鏈
chain = create_tagging_chain(schema, llm)

# 分割輸入文本以獲取單個(gè)用戶的評論
user_comments = inp.strip().split("\n")

# 創(chuàng)建一個(gè)空字典用于保存每個(gè)用戶的標(biāo)記結(jié)果
tagged_results = {}

# 遍歷每個(gè)用戶的評論
for comment in user_comments:
    user, user_comment = comment.split(": ", 1)
    # 執(zhí)行標(biāo)記操作
    result = chain.run(user_comment)
    # 將標(biāo)記結(jié)果保存到字典中
    tagged_results[user] = result

# 遍歷tagged_results字典
for user, feedback in tagged_results.items():
    # 格式化反饋內(nèi)容為一個(gè)字符串
    feedback_str = ", ".join(f"{key}: {value}" for key, value in feedback.items())
    # 打印用戶名和反饋
    print(f"用戶名:{user},反饋:{feedback_str}")

代碼依舊是熟悉的配方,顯然小哥已經(jīng)輕車熟路了。

1.導(dǎo)入依賴庫導(dǎo)入了 `ChatOpenAI`、`ChatPromptTemplate`、`create_tagging_chain` 和 `create_tagging_chain_pydantic` 等所需庫和函數(shù)。

2.定義標(biāo)記模式(Schema)使用 `schema` 變量定義了需要從用戶評論中標(biāo)記的信息,這里包括了滿意度、產(chǎn)品質(zhì)量、性價(jià)比等多個(gè)維度。

3.初始化自然語言模型創(chuàng)建了一個(gè)名為 `llm` 的 `ChatOpenAI` 對象,用于后續(xù)的文本生成和理解任務(wù)。

4.創(chuàng)建標(biāo)記鏈使用 `create_tagging_chain` 函數(shù)和之前定義的 `schema` 及初始化的 `llm` 對象,生成了一個(gè)信息標(biāo)記鏈,存儲(chǔ)為 `chain` 變量。

5.獲取用戶評論從 `inp` 變量中提取單個(gè)用戶的評論,并存儲(chǔ)在 `user_comments` 列表中。

6.初始化結(jié)果存儲(chǔ)創(chuàng)建了一個(gè)名為 `tagged_results` 的空字典,用于保存每個(gè)用戶的標(biāo)記結(jié)果。

7.循環(huán)標(biāo)記用戶評論遍歷每個(gè)用戶的評論,使用 `chain.run()` 方法運(yùn)行標(biāo)記鏈,然后將標(biāo)記結(jié)果保存到 `tagged_results` 字典中。

8.輸出標(biāo)記結(jié)果最后,遍歷 `tagged_results` 字典,將每個(gè)用戶的標(biāo)記結(jié)果格式化為字符串并輸出。

輸出內(nèi)容如下

用戶名:風(fēng)之子,反饋:滿意度: 非常滿意, 性價(jià)比: 非常高, 可靠性: 很可靠, 交付速度: 很快, 推薦意愿: 一定會(huì)
用戶名:月光仙子,反饋:滿意度: 非常滿意, 產(chǎn)品質(zhì)量: 優(yōu)秀, 客戶服務(wù): 滿意, 交付速度: 快
用戶名:獨(dú)孤求敗,反饋:產(chǎn)品質(zhì)量: 一般, 可靠性: 一般, 性價(jià)比: 一般
用戶名:劍圣,反饋:滿意度: 一般, 產(chǎn)品質(zhì)量: 一般, 性價(jià)比: 不錯(cuò), 功能完整性: 好
用戶名:小白龍,反饋:性價(jià)比: 高, 個(gè)性化需求滿足度: 一般, 推薦意愿: 不確定
用戶名:雷霆之怒,反饋:用戶體驗(yàn): 非常好, 推薦意愿: 一定會(huì)
用戶名:夜行者,反饋:滿意度: 一般, 產(chǎn)品質(zhì)量: 一般, 性價(jià)比: 一般
用戶名:魔法少女,反饋:功能完整性: 非常好, 客戶服務(wù): 好, 交付速度: 一般, 可靠性: 一般
用戶名:暗夜精靈,反饋:可靠性: 非常可靠, 交付速度: 非???用戶名:星河戰(zhàn)士,反饋:性價(jià)比: 高, 個(gè)性化需求滿足度: 非常滿意, 推薦意愿: 一定會(huì)

從內(nèi)容上雖然可以看到每個(gè)用戶對產(chǎn)品和服務(wù)的態(tài)度,但是運(yùn)營小妹提出了要求,需要進(jìn)行一些統(tǒng)計(jì)幫助運(yùn)營進(jìn)行用戶的區(qū)分。例如:非常滿意的用戶占比是多少,感覺產(chǎn)品質(zhì)量優(yōu)秀的用戶占比等等。

這難不倒小哥,繼續(xù)加代碼:

# 初始化計(jì)數(shù)器
count_very_satisfied = 0
count_excellent_quality = 0

# 計(jì)算總用戶數(shù)
total_users = len(tagged_results)

# 遍歷tagged_results字典
for user, feedback in tagged_results.items():
    # 檢查滿意度是否為“非常滿意”
    if feedback.get("滿意度") == "非常滿意":
        count_very_satisfied += 1
    # 檢查產(chǎn)品質(zhì)量是否為“優(yōu)秀”
    if feedback.get("產(chǎn)品質(zhì)量") == "優(yōu)秀":
        count_excellent_quality += 1

# 計(jì)算百分比
percent_very_satisfied = (count_very_satisfied / total_users) * 100
percent_excellent_quality = (count_excellent_quality / total_users) * 100

# 打印百分比
print(f"非常滿意的用戶百分比: {percent_very_satisfied}%")
print(f"產(chǎn)品質(zhì)量優(yōu)秀的用戶百分比: {percent_excellent_quality}%")

輸出如下:

非常滿意的用戶百分比: 20.0%
產(chǎn)品質(zhì)量優(yōu)秀的用戶百分比: 10.0%

看看需求輕松搞定,看來可以按時(shí)下班了。

生成評論數(shù)據(jù)的雷達(dá)圖

運(yùn)營小妹見程序員小哥這么快完成了功能,覺得沒有難度于是提出,是否能夠?qū)⒂脩舻姆答仈?shù)據(jù)通過雷達(dá)圖的方式展示。程序員小哥,突然“由喜轉(zhuǎn)悲”心中一萬個(gè)草泥馬在奔騰,不過精心一想,雷達(dá)圖不同的頂點(diǎn)代表不同的情感維度,每個(gè)用戶的反饋按照等級(jí)給一個(gè)分?jǐn)?shù),然后將分?jǐn)?shù)平均以后得到的值就可以代表某個(gè)維度的最終顯示值了。這么一想瞬間通透了,代碼呼之欲出:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties

# 轉(zhuǎn)換為 DataFrame
df = pd.DataFrame.from_dict(tagged_results, orient='index')

# 定義枚舉到數(shù)值的映射
mapping = {
    "非常滿意": 5, "滿意": 4, "一般": 3, "不滿意": 2, "非常不滿意": 1,
    "優(yōu)秀": 4, "良好": 3, "一般": 2, "差勁": 1,
    "非常高": 4, "高": 3, "一般": 2, "低": 1,
    "非常好": 4, "好": 3, "一般": 2, "差": 1,
    "非常滿意": 4, "滿意": 3, "一般": 2, "不滿意": 1,
    "一定會(huì)": 4, "可能會(huì)": 3, "不確定": 2, "不會(huì)": 1,
    "非???: 4, "快": 3, "一般": 2, "慢": 1,
    "非??煽?: 4, "可靠": 3, "一般": 2, "不可靠": 1
}

# 將標(biāo)簽轉(zhuǎn)換為數(shù)值
for column in df.columns:
    df[column] = df[column].map(mapping)

# 計(jì)算每個(gè)屬性(列)的平均得分
averages = df.mean()

# 準(zhǔn)備繪制雷達(dá)圖
attributes = list(df.columns)
num_vars = len(attributes)

# 計(jì)算角度
angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()
angles += angles[:1]  # 使雷達(dá)圖封閉

# 平均得分
averages = averages.tolist() + averages.tolist()[:1]

# 設(shè)置字體
font = FontProperties(fname='SimHei.ttf')

# 繪制雷達(dá)圖
plt.figure(figsize=(8, 8))
ax = plt.subplot(polar=True)

# 畫線
ax.fill(angles, averages, color='blue', alpha=0.25)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(attributes, fontproperties=font)

# 添加標(biāo)題
plt.title('標(biāo)記結(jié)果的雷達(dá)圖', size=20, color='blue', y=1.1, fontproperties=font)

plt.show()

雖然代碼簡單,但是小哥擔(dān)心大家不懂,還是“畫蛇添足”地給出了解釋。

1.導(dǎo)入依賴庫導(dǎo)入了 Pandas、Matplotlib 和 NumPy 等庫,以及一些字體設(shè)置的工具。

2.從字典到 DataFrame使用 `pd.DataFrame.from_dict()` 將 `tagged_results` 字典轉(zhuǎn)化為 Pandas DataFrame,這樣更便于后續(xù)的數(shù)據(jù)處理。

3.定義標(biāo)簽到數(shù)值的映射創(chuàng)建了一個(gè)名為 `mapping` 的字典,用于將用戶反饋的標(biāo)簽(如 "非常滿意"、"滿意" 等)映射到數(shù)值。

4.標(biāo)簽轉(zhuǎn)換為數(shù)值遍歷 DataFrame 的每一列,使用 `map()` 函數(shù)將所有的標(biāo)簽轉(zhuǎn)換為對應(yīng)的數(shù)值。

5.計(jì)算平均得分對 DataFrame 的每一列(即每一個(gè)屬性)計(jì)算平均得分,并保存在 `averages` 變量中。

6.雷達(dá)圖準(zhǔn)備設(shè)置雷達(dá)圖的各個(gè)頂點(diǎn)標(biāo)簽(即 `attributes`),并計(jì)算每個(gè)頂點(diǎn)對應(yīng)的角度。

7.角度和平均得分計(jì)算每個(gè)屬性對應(yīng)的角度,并確保雷達(dá)圖是一個(gè)封閉的形狀。同時(shí),對 `averages` 列表進(jìn)行操作以確保雷達(dá)圖的封閉。

8.設(shè)置字體使用 `FontProperties` 來設(shè)置字體,確保中文能夠正確顯示。

9.繪制雷達(dá)圖使用 Matplotlib 的 `subplot` 和其他函數(shù)來繪制雷達(dá)圖。設(shè)置了圖的大小、顏色、透明度等。

10.設(shè)置標(biāo)題和標(biāo)簽最后,添加了標(biāo)題并設(shè)置了各個(gè)軸的標(biāo)簽。

雷達(dá)圖展示結(jié)果:

總結(jié)

運(yùn)用大型語言模型和LangChain庫,我們不僅可以高效地從用戶評論中抽取產(chǎn)品相關(guān)信息,還可以獲取到用戶的情感反饋。這一整套方案大大簡化了傳統(tǒng)的數(shù)據(jù)分析過程,減少了人工標(biāo)簽和復(fù)雜規(guī)則維護(hù)的需要。通過進(jìn)一步的數(shù)據(jù)可視化,運(yùn)營團(tuán)隊(duì)可以更容易地理解用戶需求和感受,從而更精準(zhǔn)地調(diào)整產(chǎn)品特性和營銷策略。這不僅提高了數(shù)據(jù)分析的準(zhǔn)確性,也極大地提升了工作效率。

作者介紹

崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗(yàn),10年分布式架構(gòu)經(jīng)驗(yàn)。



責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2025-06-20 10:18:58

大模型

2025-06-30 02:00:00

AI智能體人工智能

2021-10-09 07:55:49

設(shè)計(jì)師業(yè)務(wù)用戶需求

2023-11-17 23:02:38

模型學(xué)習(xí)

2021-05-13 23:54:12

DockerDockerfile鏡像

2025-05-29 10:32:32

2025-03-26 10:57:40

PyTorchGGUF

2025-10-24 10:34:55

2024-05-22 07:57:34

2025-02-26 14:22:18

2025-04-25 00:20:00

大模型tokenizer

2024-02-01 08:34:30

大模型推理框架NVIDIA

2025-08-18 09:15:00

2024-04-15 13:51:03

模型LLMLLMs

2023-11-29 11:30:17

PDF語言模型

2016-01-26 11:08:54

2025-09-10 04:00:00

2025-09-19 11:09:40

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产欧美一区二区精品秋霞影院| 亚洲三级影院| 欧美一三区三区四区免费在线看| 日韩一二区视频| 男人天堂一区二区| 久久久777| 日韩中文字幕在线视频| 深夜视频在线观看| 日韩av一级| 亚洲天堂成人在线观看| 国产精品一区二区不卡视频| 久久精品五月天| 亚洲一区二区三区| 亚洲美女性生活视频| 一级淫片在线观看| 成人性生活视频| 玉米视频成人免费看| 日韩高清dvd| 丁香六月天婷婷| 麻豆精品久久精品色综合| 4444欧美成人kkkk| 欧美成人国产精品高潮| 日本女优一区| 日韩精品中文字幕久久臀| 91插插插影院| 欧美日韩五区| 欧美色另类天堂2015| 成年人视频网站免费| 在线看免费av| 2020国产精品自拍| 国产成人成网站在线播放青青| 99re国产在线| 一本色道精品久久一区二区三区| 欧美成人精品一区二区| 国产视频123区| 久久91精品| 日韩电影中文 亚洲精品乱码| 久久精品一二三四| 国产精品videossex撒尿| 精品久久久一区| 日本香蕉视频在线观看| 男人影院在线观看| 欧美韩国日本综合| 日韩视频在线观看国产| 日韩电影网址| 91在线一区二区| 国产一区免费视频| 日本美女一级视频| 成人99免费视频| 国产精品免费在线 | 欧美国产91| 中文字幕亚洲图片| 成人无码av片在线观看| 久久爱www成人| 亚洲美女在线视频| 中文字幕国产专区| 国产精品一国产精品| 亚洲欧美国产高清va在线播| 国产在线观看无码免费视频| 日本精品影院| 亚洲男女性事视频| 亚洲第一成人网站| 成人精品电影| 中文字幕日韩欧美在线视频| 香蕉成人在线视频| 99久精品视频在线观看视频| yw.139尤物在线精品视频| 日本裸体美女视频| 中文字幕一区二区av| 久久久久久91| 毛片在线免费视频| 玖玖精品视频| 国产日韩欧美在线播放| 国产精品一区二区av白丝下载 | 欧美ab在线视频| 色与欲影视天天看综合网| 精品视频久久久久| 免播放器亚洲| 国产精品入口尤物| 国产日产亚洲系列最新| 国产成人免费视频网站高清观看视频| 99久热re在线精品996热视频 | 亚洲一区二区黄| 亚洲精品国产精品乱码在线观看| 久久久久电影| 久久久亚洲成人| 亚洲图片在线视频| 精品午夜一区二区三区在线观看| 亚洲在线观看视频| 天天综合天天色| 国产欧美精品区一区二区三区| 亚洲午夜精品久久久久久浪潮| av电影高清在线观看| 图片区小说区区亚洲影院| 日日碰狠狠躁久久躁婷婷| 日韩精品一级毛片在线播放| 精品国精品自拍自在线| 日本精品在线观看视频| 一区二区中文| 91国内产香蕉| 国产精品久久久久毛片| 99精品久久只有精品| 亚洲一区二区三区欧美| a'aaa级片在线观看| 欧美视频一区二区三区在线观看 | 日韩一区二区三区xxxx| 日韩免费黄色片| 久久国产福利国产秒拍| 久久精彩视频| 日韩专区av| 欧美三级在线播放| 一区二区免费在线观看视频| 天堂美国久久| 日韩美女中文字幕| 神马久久久久久久久久| 亚洲欧洲成人av每日更新| 日本不卡在线观看视频| 日韩精品中文字幕一区二区 | 人人网欧美视频| 91精品国产高清一区二区三区蜜臀 | 成人a在线视频免费观看| 欧美午夜视频一区二区| 91视频免费入口| 日韩dvd碟片| 国产成人精品综合久久久| 俄罗斯嫩小性bbwbbw| 国产精品久久久久久久浪潮网站| 国产无套内射久久久国产| 一本一道久久a久久| yellow中文字幕久久| 天天操天天干天天摸| 99久久免费精品| 欧美精品卡一卡二| 日韩一二三区| 超在线视频97| 国产巨乳在线观看| 国产精品久久久久影视| 超碰影院在线观看| 精品一区毛片| 欧洲中文字幕国产精品| 深夜福利免费在线观看| 午夜日韩在线观看| 天天躁日日躁狠狠躁av| 亚洲一级黄色| 国产精品青青草| 精灵使的剑舞无删减版在线观看| 日韩亚洲欧美在线观看| 91aaa在线观看| 国产一区二区在线电影| 中文字幕人成一区| 91麻豆精品| 久久影院资源网| 精品人妻久久久久一区二区三区| 18成人在线观看| 亚洲天堂伊人网| 亚洲精品网址| 97久草视频| 成人在线免费观看黄色| 亚洲国产中文字幕久久网| 男人的天堂一区二区| 91麻豆国产福利在线观看| 北条麻妃在线视频| 日本在线电影一区二区三区| 成人欧美一区二区三区黑人孕妇| 黄色国产网站在线播放| 日韩欧美自拍偷拍| 国产精品1000| 久久这里都是精品| 日本特黄a级片| 亚洲乱码免费伦视频| 91超碰在线免费观看| 欧美寡妇性猛交xxx免费| 亚洲电影成人av99爱色| www欧美在线| 国产精品女主播在线观看| 久久久久久久久久久久久久久国产| 欧美电影免费播放| www.久久草| 亚洲精品一区| 主播福利视频一区| www.精品视频| 欧美色视频日本高清在线观看| 久久久久亚洲av成人无码电影| 美女精品一区二区| 国产一区二区三区小说| 精品国产日韩欧美| 亚洲aa在线观看| 国产高清视频色在线www| 国产小视频91| 午夜美女福利视频| 欧洲在线/亚洲| 精品爆乳一区二区三区无码av| 91伊人久久大香线蕉| 久久久精品麻豆| 国产精品啊v在线| 亚洲成人午夜在线| 国产一区调教| 成人久久一区二区| 亚洲十八**毛片| 久久精品成人动漫| 青青青草原在线| 日韩欧美电影一区| 中文字幕+乱码+中文乱码www | 99久久精品国产毛片| 超碰在线公开97| av成人毛片| 青青草免费在线视频观看| 成人台湾亚洲精品一区二区 | 中文字幕人成人乱码亚洲电影| 亚洲综合自拍偷拍| 亚洲不卡的av| 久久一留热品黄| 337p日本欧洲亚洲大胆张筱雨| 丝袜美腿亚洲一区| 99视频在线免费播放| 亚洲精品国产偷自在线观看| 日韩久久久久久久| 久久365资源| 亚洲一区二区三区sesese| 另类中文字幕国产精品| 91禁国产网站| 韩国日本一区| 欧美大片免费观看| 黄色网址在线免费| 综合欧美国产视频二区| 美国成人毛片| 亚洲精品永久免费精品| 欧美自拍偷拍第一页| 欧美成人女星排名| av网站在线免费看| 91精品黄色片免费大全| 最新国产中文字幕| 欧美亚洲一区三区| 亚洲天堂五月天| 日本韩国视频一区二区| 二区视频在线观看| 精品久久久视频| 六月丁香婷婷综合| 欧美色图在线视频| www.色国产| 一本色道久久加勒比精品| 天堂网一区二区三区| 午夜久久久久久久久| 国产精品成人av久久| 亚洲成年人网站在线观看| 日本污视频在线观看| 亚洲超碰精品一区二区| 香蕉免费毛片视频| 精品日韩美女的视频高清| 九九热在线视频播放| 欧美日韩在线免费| 久久久久久久久久久影院| 色视频欧美一区二区三区| 人人草在线观看| 欧美在线短视频| 一区二区www| 91精品国产综合久久精品麻豆 | www.久久久久久久久| 奇米777第四色| 91视频在线看| 一级肉体全黄裸片| 18成人在线观看| 久久久久久久9999| 欧美日韩国产一中文字不卡| 五月婷婷激情视频| 欧美日韩视频第一区| 国产口爆吞精一区二区| 日韩天堂在线观看| 亚洲 小说区 图片区 都市| 亚洲老头同性xxxxx| av电影在线网| 欧美另类交人妖| 理论不卡电影大全神| 国产精欧美一区二区三区| 男女啪啪999亚洲精品| 97自拍视频| 亚洲理论电影片| 亚洲精品欧美精品| 国产精品啊v在线| 亚洲中文字幕久久精品无码喷水| 捆绑变态av一区二区三区| 999热精品视频| 99久久婷婷国产精品综合| 91麻豆制片厂| 亚洲午夜视频在线观看| 69xxxx国产| 日韩欧美国产麻豆| 黄色软件在线| 欧美精品在线观看91| 国产污视频在线播放| 成人欧美一区二区三区黑人孕妇| 久9re热视频这里只有精品| 午夜精品区一区二区三 | 久久久久久久久久福利| 国产曰批免费观看久久久| 熟女人妻在线视频| 亚洲日本欧美天堂| 人人草在线观看| 精品成人免费观看| 午夜激情视频在线| 91精品国产91久久久| 在线视频成人| 蜜桃臀一区二区三区| 欧美精品国产一区二区| 欧美精品无码一区二区三区| 成人美女视频在线看| 亚洲欧美精品久久| 色悠悠久久综合| 国产综合在线播放| 久久九九热免费视频| 成人av观看| 国产亚洲欧美另类一区二区三区| 色777狠狠狠综合伊人| 午夜肉伦伦影院| 东方aⅴ免费观看久久av| 精品国产国产综合精品| 色呦呦一区二区三区| 少妇喷水在线观看| 欧美剧在线观看| 99精品视频在线免费播放| 午夜精品一区二区在线观看 | 亚洲综合网站在线观看| 91亚洲国产成人久久精品麻豆| 亚洲精品一区中文| 国产夫妻在线播放| 国产乱子伦精品| 欧美精品国产一区| 人妻激情偷乱视频一区二区三区| 国产精品水嫩水嫩| 国产日韩在线免费观看| 日韩精品视频免费专区在线播放| 国产精品探花在线| 国产高清自拍一区| 午夜久久99| 人妻巨大乳一二三区| 亚洲欧洲精品天堂一级| 亚洲熟女乱色一区二区三区久久久| 亚洲欧美综合图区| jk漫画禁漫成人入口| 久久综合久久久| 国产欧美大片| 国产ts丝袜人妖系列视频 | 久久综合色视频| av成人老司机| 毛片视频网站在线观看| 日韩不卡中文字幕| 丝袜诱惑一区二区| 欧美高清性xxxxhdvideosex| 久久亚洲精品伦理| 欧美黄色激情视频| 欧美视频中文字幕| 黄色片网站在线观看| 99久久精品无码一区二区毛片| 黄色亚洲大片免费在线观看| 激情综合激情五月| 偷拍亚洲欧洲综合| 你懂的视频在线免费| 国产精品狠色婷| 91青青国产在线观看精品| 欧美污在线观看| 香蕉久久一区二区不卡无毒影院| 少妇无码一区二区三区| 人九九综合九九宗合| 日韩电影免费网址| 永久免费黄色片| 亚洲国产成人av| 黄色美女网站在线观看| 国产啪精品视频| 亚洲婷婷在线| 精品少妇人妻一区二区黑料社区| 欧美在线观看视频一区二区| 国产鲁鲁视频在线观看特色| av日韩免费电影| 免费在线亚洲| sm捆绑调教视频| 精品国产3级a| 亚洲成人va| 9色porny| 国产日韩一级二级三级| 国产乱淫av免费| 68精品国产免费久久久久久婷婷| 国产一区二区三区站长工具| 中文av字幕在线观看| 午夜影院久久久| 在线观看免费高清完整| 国产精品18毛片一区二区| 六月天综合网| 69av.com| 中文字幕在线亚洲| 理论片一区二区在线| 午夜在线观看av| 亚洲电影一级黄| 欧美日韩在线资源| 国产日韩精品推荐| 久久成人麻豆午夜电影| 国产女同在线观看| 久久视频在线视频| 免费一区二区| 伦理片一区二区| 欧美美女喷水视频|