精品欧美一区二区三区在线观看 _久久久久国色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)

在线精品播放av| 欧美日韩精品在线| 亚洲xxx自由成熟| 欧产日产国产v| 欧美日韩午夜电影网| 亚洲欧美激情一区二区| 国产亚洲欧美一区二区| 久久一区二区三区视频| 久久9999免费视频| 亚洲人成网站影音先锋播放| 国产欧美日韩视频一区二区三区| 色av性av丰满av| 色综合咪咪久久网| 精品99一区二区| 宅男噜噜噜66国产免费观看| 99自拍视频在线观看| av高清久久久| 国产精品影片在线观看| 九九视频免费看| 九九综合在线| 日韩欧美的一区| 蜜臀视频一区二区三区| 欧美野外wwwxxx| 中文av一区二区| 精品一区二区久久久久久久网站| 亚洲视频在线免费播放| 一本色道久久综合| 日韩有码视频在线| 一色道久久88加勒比一| 日韩中文字幕在线一区| 欧美视频一区二区三区在线观看| 97免费视频观看| 日本中文字幕电影在线免费观看| 国产·精品毛片| 国产精品视频精品| 五月天婷婷激情| 国产综合网站| 久久精品国产亚洲| 97在线观看免费视频| 精品国产影院| 日韩视频一区二区三区在线播放| 性欧美极品xxxx欧美一区二区| 国产精品一品| 一区二区三区中文字幕精品精品| 欧美一区二区三区精美影视 | 4438x亚洲最大成人网| 成人在线免费观看av| 黄页网站在线观看免费| 亚洲欧美激情小说另类| 爱爱爱视频网站| 97视频在线观看网站| 久久久精品免费免费| 精品国产一二| 人妻妺妺窝人体色www聚色窝| 国产真实乱偷精品视频免| 国产精品欧美激情| 欧美亚洲另类小说| 久久久久久夜| 清纯唯美日韩制服另类| 青青国产在线观看| 一区二区91| 26uuu国产精品视频| 久久国产黄色片| 国产精品入口66mio| 97香蕉超级碰碰久久免费的优势| 国产网址在线观看| 亚洲福利一区| 69av在线视频| 日韩在线播放中文字幕| 久久性天堂网| 国产精品av电影| 中文字幕人妻一区二区在线视频| 日本女优在线视频一区二区| 国产精品一区二区久久久久| 亚洲性猛交富婆| 蜜臀a∨国产成人精品| 国产精品中文字幕在线| 国产精品嫩草影院精东| 韩国毛片一区二区三区| dy888夜精品国产专区| 人妻偷人精品一区二区三区| 久久婷婷国产综合精品青草| 日韩av高清在线播放| 91xxx在线观看| 亚洲欧美日韩一区| 69sex久久精品国产麻豆| 国产乱码午夜在线视频| 日韩欧美a级成人黄色| 男女男精品视频站| 精品久久亚洲| 欧美日韩不卡一区二区| 色综合久久久无码中文字幕波多| 136福利精品导航| 日韩成人中文字幕| 呻吟揉丰满对白91乃国产区| 91tv官网精品成人亚洲| 欧美精品久久久久a| 国产精品视频一区在线观看| 免费成人在线观看视频| 成人在线视频电影| 精品亚洲综合| 亚洲精品日产精品乱码不卡| 久久久免费视频网站| 色综合.com| 日韩高清a**址| 性少妇xx生活| 亚洲精品少妇| 国产在线精品成人一区二区三区| 欧美特黄一级视频| 国产精品免费免费| 成人在线播放网址| 久久爱.com| 亚洲国产精久久久久久| 欧美一区二区三区观看| 激情综合久久| 成人在线一区二区| 男人久久精品| 亚洲午夜电影在线观看| 亚洲娇小娇小娇小| 亚洲人成网站77777在线观看| 久久精品国产96久久久香蕉| 欧美a视频在线观看| 国产成人高清在线| 亚洲色图自拍| 97成人资源| 欧美xxxx在线观看| 国产成人精品视频免费| 国产精品五区| 99热99热| 大地资源网3页在线观看| 欧美性色19p| 亚洲精品乱码久久久久久蜜桃欧美| 日韩精品免费一区二区三区| 欧美性视频精品| 亚洲第一色视频| 国产精品美女www爽爽爽| 岳毛多又紧做起爽| 麻豆成人入口| 欧美精品久久久久a| av网站在线观看免费| 国产精品免费久久| 国产一级做a爰片久久| 国产亚洲欧美日韩在线观看一区二区| 久久久久久久97| www.av在线.com| 亚洲精品亚洲人成人网| 亚洲午夜激情影院| 久久香蕉国产| 国产男人精品视频| av资源网站在线观看| 日本黄色一区二区| 妺妺窝人体色WWW精品| 亚洲综合日韩| 鲁丝一区二区三区免费| 五月天av在线| 亚洲美女精品久久| 九九精品免费视频| 久久久夜色精品亚洲| 日韩av片在线看| 色先锋久久影院av| 2019av中文字幕| 天堂中文在线资源| 午夜精品一区二区三区免费视频 | 中文精品久久久久人妻不卡| 国产午夜亚洲精品羞羞网站| 国产综合免费视频| 精品国产一区二区三区四区| 国产精品视频内| 性开放的欧美大片| 3d动漫精品啪啪一区二区竹菊| 农村妇女精品一区二区| 国产福利一区二区精品秒拍| 日韩电影在线免费看| 成人国产精品色哟哟| 国产精品无码2021在线观看| 欧美天天综合网| 中文字幕第69页| 精品制服美女丁香| 在线观看污视频| 精品按摩偷拍| 庆余年2免费日韩剧观看大牛| 欧美偷拍视频| 欧美在线视频不卡| 希岛爱理中文字幕| 成人综合在线观看| 国产精品欧美激情在线观看| 日韩在线精品| 国产成人精品自拍| 91精品论坛| 久久色精品视频| 日本xxxxxwwwww| 91成人免费在线视频| 免费高清在线观看电视| av午夜精品一区二区三区| 精品久久久久av| 午夜精品视频一区二区三区在线看| 99电影在线观看| 日韩精选视频| 欧美精品久久久久久久久| 你懂得网站在线| 91精品蜜臀在线一区尤物| 一区二区三区视频免费看| 欧美极品aⅴ影院| 欧美一级片在线免费观看| 久久九九精品| 国产专区在线视频| 国产欧美日韩一区二区三区四区| 亚洲一区二区三区在线视频| 中文av在线全新| 欧美成人免费va影院高清| 麻豆app在线观看| 日韩欧美aaaaaa| 中文无码av一区二区三区| 亚洲电影一区二区三区| 免费观看特级毛片| 91在线小视频| 久久久久久久久久久影视| 老牛嫩草一区二区三区日本| 97中文字幕在线| 四虎国产精品免费观看| 久久久一本精品99久久精品| 日韩在线成人| 成人精品视频久久久久| 澳门av一区二区三区| 97热精品视频官网| v片在线观看| 色狠狠av一区二区三区香蕉蜜桃| 天堂av网在线| 欧美xxx久久| 国产欧美第一页| 欧美综合色免费| 毛片在线免费视频| 亚洲国产日韩a在线播放| 免费在线观看a级片| 欧美高清在线视频| 国产精品天天干| 2024国产精品| 亚洲熟女乱综合一区二区三区| 国产精品羞羞答答xxdd| 日韩欧美国产片| 青青草国产精品亚洲专区无| 搞av.com| 樱桃成人精品视频在线播放| 黄色录像特级片| 91精品国产成人观看| 亚洲欧美在线网| 精品国产精品国产偷麻豆| 欧美日韩国产精品一卡| 自拍视频一区| 快播日韩欧美| 精品一区在线| 欧美色图亚洲自拍| 国产麻豆精品久久| 日本一区二区三区免费看| 秋霞影视一区二区三区| 久久精品久久精品国产大片| 清纯唯美亚洲经典中文字幕| 蜜桃传媒一区二区| 九一精品国产| 日韩中文字幕一区| 色777狠狠狠综合伊人| 亚洲精品永久www嫩草| 欧美xxav| 成人在线免费观看网址| 欧美a级在线| 成人免费a级片| 亚洲乱码视频| 久久精品午夜福利| 日日骚欧美日韩| 天天操狠狠操夜夜操| 国产毛片精品视频| 欧美xxxxxbbbbb| 成人免费毛片片v| 欧美色图亚洲激情| 日本一区二区不卡视频| 免费黄色激情视频| 一区二区三区精品在线观看| 久久综合激情网| 欧美日韩中文字幕| а中文在线天堂| 欧美一级日韩不卡播放免费| 亚洲第一天堂在线观看| 亚洲精品网站在线播放gif| 国产精品视频二区三区| 久久久97精品| 91黄页在线观看| 国产精品99免视看9| 国产一区2区在线观看| 国产伦精品一区二区三区在线 | 视频在线在亚洲| 国产美女18xxxx免费视频| 处破女av一区二区| 蜜乳av中文字幕| 亚洲激情第一区| 国产精品久久久久久久久久精爆| 91精品国产综合久久国产大片| 免费国产羞羞网站视频| 中文日韩在线观看| 在线视频国产区| 国产成人激情视频| 免费精品一区| 日本精品一区二区三区不卡无字幕| 婷婷另类小说| 男人透女人免费视频| 国产成人综合视频| 久久久久亚洲AV成人无在| 一区二区在线观看不卡| 最好看的日本字幕mv视频大全| 精品国产乱码久久久久久免费| 岛国在线大片| 97在线观看免费| 日韩福利影视| 欧美系列一区| 精品1区2区3区4区| 日本国产一级片| 2020国产成人综合网| 激情小说中文字幕| 欧美三级中文字幕在线观看| 五月天激情开心网| 欧美大胆a视频| 深夜视频一区二区| 久久99热只有频精品91密拍| 欧美黄色一区| 九九热精品在线播放| xfplay精品久久| 久久久久亚洲av成人片| 欧美福利视频导航| 久久综合九色综合久| 97精品在线视频| 欧美久久亚洲| 可以免费看的黄色网址| 美女在线观看视频一区二区| 六月婷婷七月丁香| 欧美日韩人人澡狠狠躁视频| 亚洲欧美高清视频| 欧美成人剧情片在线观看| 国产精品一区二区三区av| 亚洲国产一区二区精品视频| 视频一区在线播放| 欧美图片第一页| 黑人巨大精品欧美一区免费视频 | 国产一区二区三区日韩| 国产精品av久久久久久无| 欧美性猛xxx| 四虎影视2018在线播放alocalhost| 久久乐国产精品| 超碰精品在线| 国产在线播放观看| 丁香桃色午夜亚洲一区二区三区| 欧美成人精品欧美一级私黄| 欧美一区二区三区免费| 成人a在线视频免费观看| 成人在线视频网站| 永久亚洲成a人片777777| 午夜天堂在线视频| 亚洲精品乱码久久久久久日本蜜臀| 国产口爆吞精一区二区| 久久中文字幕国产| 国产一区二区三区免费观看在线| 一级特黄妇女高潮| 国产成人免费在线视频| 久久久久久久久精| 精品久久久网站| rebdb初裸写真在线观看| 精品国产乱码一区二区三区四区| 国产精品亚洲综合久久| av黄色在线免费观看| 欧美猛男男办公室激情| av网址在线免费观看| 豆国产97在线| 午夜一区在线| 免费看黄色三级| 欧美一级精品大片| 9999精品成人免费毛片在线看| 久久这里精品国产99丫e6| 可以看av的网站久久看| 麻豆视频免费在线播放| 日韩欧美高清dvd碟片| 欧美办公室脚交xxxx| 少妇免费毛片久久久久久久久 | 理论视频在线| 国产精品一区专区欧美日韩| 欧美日本精品| 国产福利短视频| 欧美日韩不卡一区二区| 高清电影在线观看免费| 欧美另类一区| 国产一区美女在线| 天天操天天干视频| 三级精品视频久久久久| 999久久久精品一区二区| 欧美极品欧美精品欧美图片| 亚洲美女在线国产| 水莓100在线视频| 国产精品一二三视频| 亚洲韩日在线| 亚洲精品国产精品国自| 精品1区2区在线观看| 97成人超碰| 欧美一区二区中文字幕|