chat-miner ให้ตัวแยกวิเคราะห์แบบลีนสำหรับทุกแพลตฟอร์มหลักที่เปลี่ยนการแชทให้เป็นดาต้าเฟรม การแสดงภาพเชิงศิลปะช่วยให้คุณสามารถสำรวจข้อมูลของคุณและสร้างงานศิลปะจากการแชทของคุณ
รุ่นล่าสุดรวมถึงการพึ่งพาสามารถติดตั้งผ่าน PyPI:
pip install chat-miner
หากคุณสนใจที่จะมีส่วนร่วม ใช้งานซอร์สโค้ดล่าสุด หรือเพียงต้องการสร้างทุกอย่างด้วยตัวเอง:
git clone https://github.com/joweich/chat-miner.git
cd chat-miner
pip install .
ดูบทช่วยสอนอย่างเป็นทางการสำหรับ WhatsApp, Signal, Telegram, Facebook Messenger หรือ Instagram Chats เพื่อเรียนรู้วิธีส่งออกบันทึกการแชทสำหรับแพลตฟอร์มของคุณ
รหัสต่อไปนี้นำเสนอโมดูล WhatsAppParser
การใช้งาน SignalParser
, TelegramJsonParser
, FacebookMessengerParser
และ InstagramJsonParser
เป็นไปตามรูปแบบเดียวกัน
from chatminer . chatparsers import WhatsAppParser
parser = WhatsAppParser ( FILEPATH )
parser . parse_file ()
df = parser . parsed_messages . get_df ( as_pandas = True ) # as_pandas=False returns polars dataframe
หมายเหตุ: Python จำเป็นต้องแปลงเส้นทางไฟล์เป็นสตริงดิบ ทั้งนี้ขึ้นอยู่กับระบบต้นทางของคุณ
import os
FILEPATH = r"C:UsersUsernamechat.txt" # Windows
FILEPATH = "/home/username/chat.txt" # Unix
assert os . path . isfile ( FILEPATH )
import chatminer . visualizations as vis
import matplotlib . pyplot as plt
fig , ax = plt . subplots ( 2 , 1 , figsize = ( 9 , 3 ))
ax [ 0 ] = vis . calendar_heatmap ( df , year = 2020 , cmap = 'Oranges' , ax = ax [ 0 ])
ax [ 1 ] = vis . calendar_heatmap ( df , year = 2021 , linewidth = 0 , monthly_border = True , ax = ax [ 1 ])
fig , ax = plt . subplots ( 1 , 2 , figsize = ( 7 , 3 ), subplot_kw = { 'projection' : 'polar' })
ax [ 0 ] = vis . sunburst ( df , highlight_max = True , isolines = [ 2500 , 5000 ], isolines_relative = False , ax = ax [ 0 ])
ax [ 1 ] = vis . sunburst ( df , highlight_max = False , isolines = [ 0.5 , 1 ], color = 'C1' , ax = ax [ 1 ])
fig , ax = plt . subplots ( figsize = ( 8 , 3 ))
stopwords = [ 'these' , 'are' , 'stopwords' ]
kwargs = { "background_color" : "white" , "width" : 800 , "height" : 300 , "max_words" : 500 }
ax = vis . wordcloud ( df , ax = ax , stopwords = stopwords , ** kwargs )
if not vis . is_radar_registered ():
vis . radar_factory ( 7 , frame = "polygon" )
fig , ax = plt . subplots ( 1 , 2 , figsize = ( 7 , 3 ), subplot_kw = { 'projection' : 'radar' })
ax [ 0 ] = vis . radar ( df , ax = ax [ 0 ])
ax [ 1 ] = vis . radar ( df , ax = ax [ 1 ], color = 'C1' , alpha = 0 )
from chatminer . nlp import add_sentiment
df_sentiment = add_sentiment ( df )
df_grouped = df_sentiment . groupby ([ 'author' , 'sentiment' ]). size (). unstack ( fill_value = 0 )
ax = df_grouped . plot ( kind = 'bar' , stacked = True , figsize = ( 8 , 3 ))
CLI รองรับการแยกวิเคราะห์บันทึกการแชทเป็นไฟล์ CSV ณ ขณะนี้ คุณยังสร้างการแสดงภาพจาก CLI โดยตรง ไม่ได้
ตัวอย่างการใช้งาน:
$ chatminer -p whatsapp -i exportfile.txt -o output.csv
คู่มือการใช้งาน:
usage: chatminer [-h] [-p {whatsapp,instagram,facebook,signal,telegram}] [-i INPUT] [-o OUTPUT]
options:
-h, --help
Show this help message and exit
-p {whatsapp,instagram,facebook,signal,telegram}, --parser {whatsapp,instagram,facebook,signal,telegram}
The platform from which the chats are imported
-i INPUT, --input INPUT
Input file to be processed
-o OUTPUT, --output OUTPUT
Output file for the results