爬虫 · 反爬怎么绕
爬电商数据被封IP是常事,说几个实战里能用的办法。最基础:加sleep,每次请求间隔13秒。别用固定值,用random:pythonimporttime,randomtime.sleeprandom.uniform1,2.5进阶:加Headers。UserAgent一定要随机,Referer也带上,AcceptEncoding、AcceptLanguage全配齐,伪装得像真浏览器。再进阶:代理池。...
记录文本分析、自然语言处理、可视化领域的实战经验与工具心得
爬电商数据被封IP是常事,说几个实战里能用的办法。最基础:加sleep,每次请求间隔13秒。别用固定值,用random:pythonimporttime,randomtime.sleeprandom.uniform1,2.5进阶:加Headers。UserAgent一定要随机,Referer也带上,AcceptEncoding、AcceptLanguage全配齐,伪装得像真浏览器。再进阶:代理池。...
LDA主题分析最常被问的问题:主题数K该怎么设?网上教程大多让你「用困惑度(perplexity)选最低点」,但实际项目里,困惑度曲线经常是单调下降的,根本看不出拐点。更靠谱的做法是看一致性(CoherenceScore):pythonfromgensim.modelsimportCoherenceModelcoherence=CoherenceModelmodel=lda,texts=corpu...
情感分析模型选得再好,数据没洗干净,跑出来全是垃圾。预处理这步我一般分四块做:1.去除HTML标签、URL、@用户、表情符号2.去除纯数字、纯英文、长度<2的短句3.同义替换("666"→"厉害","绝绝子"→"非常好")4.长句切分(超过100字按标点拆)第3步最容易被忽略。现在电商评论里各种网络用语漫天飞,模型根本没见过这些词,打分会乱。数据预处理是慢活,但决定了天花板。本文由BBZ·小朵科技...
做情感分析的同学应该都被「阈值」这个问题困扰过。SnowNLP的sentiments返回的是01之间的概率,默认0.5分正负——但实际项目里,直接用0.5效果很差。经验值:通用评论:0.45左右电商评价:0.55左右(好评倾向多)微博/抖音:0.4左右(吐槽多)这个值得自己拿一批标注数据调,没标准答案。还有个坑:如果数据量小(<500条),别折腾阈值了,直接看分布、看样本,比硬算分数靠谱。做电商评...
词云图最经典的坑:中文字体变成方块。wordcloud默认不支持中文,主要原因有两个:1.没指定中文字体路径2.用的是英文字体去匹配中文解决方法:pythonfromwordcloudimportWordCloudwc=WordCloudfontpath="simhei.ttf",Windows系统字体backgroundcolor="white",width=800,height=600Mac路...
词频统计90%的新手都会踩的坑:停用词表没配。有个客户跑来问:「为什么我统计出来,排名第一是『的』,第二是『了』?」——这就是没过滤停用词。jieba默认其实带了stopwords,但只有200多个,像「但是」「觉得」「可能」这种实词性虚词都没收。生产环境建议自己加一份,常见的有15003000词的中文停用词表,GitHub一搜一大把,挑一个star多的就行。实际处理时,顺序也很重要:1.jieb...
jieba词频统计一直有同学问:为什么「王者荣耀」被切成「王者/荣耀」两个词?为什么「遥遥领先」被拆成单字?这是jieba的默认词库更新不及时导致的,网络新词它不认识。解决方法很简单——加自定义词典:pythonjieba.loaduserdict"userdict.txt"txt格式一行一词,带词性和频次:王者荣耀10n遥遥领先8nyyds5n频次建议给高点(810),太低还是会被切散。改完重新...
文本里的「共现网络图」很多同学想做但没思路,说个最简单的入门方法。原理:如果两个词经常在同一句话/同一段评论里一起出现,就认为它们有关系,画一条线。步骤:1.jieba分词2.滑动窗口(同句/同段)取词对3.统计词对共现频次4.频次阈值(比如5)的画线工具用networkx+pyecharts:pythonimportnetworkxasnxG=nx.Graphforword1,word2ined...
爬下来的数据,存哪里?新人常纠结。数据量小(<10万条):直接CSV/Excel,简单粗暴,谁都能打开看。数据量中等(10万500万条):SQLite,单文件,不用装服务,Python自带:pythonimportsqlite3conn=sqlite3.connect"data.db"df.tosql"comments",conn,ifexists="append",index=False数据量大...
LDA跑出来一堆主题,每个主题一堆词,经常看着一脸懵。分享一个我用的「三看法」:一看关键词紧密度。把主题前10个词扫一遍,如果都是电商领域的(物流、质量、客服),主题就是「购物体验」;如果混了「性能」「续航」「外观」,那这是个混乱主题,K设多了。二看文档归属。把每条评论归属到概率最高的主题,统计每个主题的评论数。如果某个主题只有十几条,大概率是噪声,可以合并。三看词权重比例。gensim输出的ph...
做评论分析时,一个很常见的纠结:重复评论要不要去?结论:看场景。机械重复(完全一样的文字):一定要去。常见于刷评、凑字数、无意义回复。这种数据进模型只会拉低准确率。近重复(差一两个字,比如「不错不错」「挺不错的」):建议去,保留1条即可。这种基本是同一波人刷的。语义重复(说的事一样但表达不同):别去。这是真实的样本多样性,去了反而损失信息。代码上,机械重复一行搞定:pythondf.dropdup...
做文本分析,数据从Excel来是常态。但pandas一读,十有八九遇到:中文列名变NaN数字变成科学计数法日期变成一串45291这样的数字长文本被截断最常踩的坑是编码,解决方法很简单:pythondf=pd.readexcel"data.xlsx",dtype=str或者df=pd.readcsv"data.csv",encoding="gbk"dtype=str是关键,不然带前导0的手机号、身份...
文本数据里的「缺失」和数值型不一样,常见三种情况:1.空字符串/NaN:pandas里直接.dropna或.fillna"未知"2.表情/火星文/纯符号:这种不是「缺失」,是「无意义」,直接.str.matchr'\u4e00\u9fa5'过滤掉3.无效超短文本(<4个字):评论里基本是「可以」「不错」,情感信息量极低,看场景决定去留最容易出错的是第3种一刀切。比如做差评分析,「垃圾」「骗子」「太...
词云图做出来像样,形状和配色很关键。形状选择:默认矩形太单调,适合做报告圆形/椭圆形,最经典,适合做封面自定义形状(爱心、动物轮廓),吸引眼球,适合做宣传图中文字体本身有美感,可以考虑用文字本身拼形状配色原则:同一色系渐变(蓝→深蓝),简洁专业对比色(红+黄),热闹活泼,适合营销场景千万别用彩虹色(默认那种),显得很low代码上:pythonfromwordcloudimportWordCloud...
上批讲了怎么做共现网络图,这批讲怎么读。一张网络图摆眼前,新手第一反应是「哇好酷」,然后就完了。实际上要看三样东西:一、节点大小。代表词频。大的就是评论里的「热门词」,先看这几个,就能猜到主题。二、边的粗细。代表共现强度。两词共现越频繁,边越粗,说明它们关系越紧密。三、连通子图。整个图会自然分成几个「圈子」,每个圈子代表一个话题集群:一个孤立的点=噪声,删了一个23个节点的小圈=边缘话题一个10+...
数据量大了之后,全量重爬是灾难。这时候必须上增量。增量爬取的核心:记住「上次爬到哪了」。最简单的实现:用数据库主键去重。sql创建表CREATETABLEitemsidINTPRIMARYKEY,contentTEXT;插入时INSERTORIGNOREINTOitemsVALUES?,?爬之前查maxid,只爬idmaxid的数据。更通用的做法:用URL列表+状态字段:pending→crawl...
数据量大了之后,jieba切词慢得离谱。我曾经用jieba切50万条评论,跑了快1小时,中途还以为程序卡死了。其实jieba本身不算慢,慢在两个地方:一是没用对模式。jieba默认是精确模式,适合文本分析;但如果你只是要粗粒度分词,可以用全模式(速度提升23倍):pythonjieba.lcuttext,cutall=True二是没用多进程。jieba是单线程的,核心吃不满。直接用multipro...
上批说过加自定义词典,但其实它还有个进阶用法,很多人不知道。场景:同样一个词,在A业务里是关键词,在B业务里是噪声。比如「屏幕」在手机业务里重要,在服装业务里就是垃圾词。一个词典搞不定,就得分业务加载:pythonifbusiness=="phone":jieba.loaduserdict"dictphone.txt"elifbusiness=="clothing":jieba.loaduserd...
LDA之前聊过主题数和解读,但有个更根本的问题容易被忽略——中文分词质量直接决定LDA效果。举个例子:「这款手机屏幕显示效果非常出色」错误分词:「这/款/手机/屏幕/显示/效果/非常/出色」——其实还行正确分词:「这款/手机/屏幕/显示效果/非常/出色」——「显示效果」被切出来,反而更对但更糟的情况是:「南京市长江大桥」被切成「南京/市长/江大桥」,LDA直接当成三个主题,完全废了。LDA跑之前,...
做情感分析,模型选错了,后面调参调到秃头也没用。新手最常问:SnowNLP和snownlp哪个好?(都是同一个)简单列下我实际项目里用过的:SnowNLP:优点:零依赖,跑得动就行缺点:基于电商语料训练,长文本、复杂句表现一般适用:小项目、快速验证百度/阿里云API:优点:效果好,支持多场景(汽车、餐饮、电商)缺点:按调用次数收费,有QPS限制适用:生产环境,数据量稳定BERTChinese:优点...
上批讲了形状和配色,这次说几个让词云图「上档次」的小技巧。技巧一:加背景图。不要纯白底,找一张低饱和度的图片(比如水墨画、几何线条)做背景,wordcloud设置backgroundcolor=None,效果立刻专业。技巧二:词频对数化。如果某几个词频次特别高(比如「不错」出现5000次),会撑得很大,其他词全变小。处理一下:pythonfrequencies={k:np.log1pvfork,v...
上批讲了读图,这批说几个能让网络图「出彩」的玩法。玩法一:社区发现。用Louvain算法自动识别图里的「圈子」:pythonfromcommunityimportcommunitylouvainpartition=communitylouvain.bestpartitionG每个节点打上社区标签,再用不同颜色渲染。比手动画圈准多了。玩法二:时序演化。把数据按时间切片(每月一组),做多张网络图,放一...
上批讲了基础反爬,这次说几个深度对抗的技巧。1.Cookie池。很多网站要登录态才能访问,准备一批账号轮换登录,把Cookie存起来随机用。账号1020个就够中小项目用。2.浏览器自动化。requests搞不定的,用Playwright/Selenium跑真浏览器。慢是慢了点,但能绕过80%的反爬。3.JS逆向。网站用JS动态生成数据,得用PyExecJS/Node调一下。复杂的可以用Pyppet...
LDA模型训练完,怎么部署给客户用?我走过三个阶段。阶段一:本地跑训练+预测都自己跑痛点:客户没数据,得每次重跑阶段二:打包成exe用PyInstaller打包,客户双击运行痛点:模型文件大(几百MB),启动慢阶段三:Web服务Flask/FastAPI暴露接口模型预加载,秒级响应客户传数据过来,返回结果我现在主要用阶段三,简单稳。FastAPI例子:pythonfromfastapiimport...
很多兄弟技术没问题,功能能跑通,但交付到客户手里就崩。问题出在:写的是脚本,不是产品。脚本vs产品的区别:|维度|脚本|产品||||||错误处理|print一句就过|友好弹窗,日志记录||配置文件|改源码|改.ini/.yaml||日志|没有|有,问题可追溯||进度条|没有|有,客户不焦虑||异常退出|崩了客户懵|自动保存,下次续跑||文档|没有|有README,5分钟上手|我自己的标准:写完一个...
客户经常问:能不能搞个实时情感监控大屏?原理不复杂,但坑不少。技术栈三件套:Kafka/RedisStream:接消息Flink/SparkStreaming:实时计算Grafana:可视化大屏如果数据量不大(每秒<100条),用Python也能凑合:pythonfromkafkaimportKafkaConsumerconsumer=KafkaConsumer'comments'formsgin...
做完情感分析,给客户交付的时候,光给个分数表格是不够的,得出一份能讲故事的报告。报告结构我一般这么写:一、整体概览总样本数正面/中性/负面占比(用饼图)平均情感分数二、维度拆分按时间(每天/每周的走势)按产品(不同SKU的口碑对比)按渠道(京东vs淘宝vs拼多多)三、问题归因差评里高频关键词(Top20)分类:物流/质量/客服/价格/描述不符每类问题占比四、行动建议最紧急要解决的12个问题长期优化...
词云图做给自己看和给客户看,标准完全不一样。自己做:能看出意思就行,字体不对、配色俗气都无所谓。给客户:得满足这几点:字体必须商用免费(思源黑体、阿里巴巴普惠体是首选)配色符合客户VI(蓝橙红都有人忌讳)形状有寓意(爱心、双十一、春节、圣诞等)输出多尺寸(主图800x800、详情页750x400、朋友圈1080x1080)文字别触敏感词(政治、宗教、血腥)最常被忽视的是最后一条。有客户做了个「抗疫...
LDA是主题模型,讲过;Kmeans是聚类,跟LDA是两回事。Kmeans更快、更暴力,但要求先把文本转成向量。完整流程:pythonfromsklearn.featureextraction.textimportTfidfVectorizerfromsklearn.clusterimportKMeansvectorizer=TfidfVectorizermaxfeatures=5000X=vec...
上批聊了词频,这批上点「硬菜」——关键词提取。最常见的两种方法:TFIDF:基于统计,看词在文档里「重不重要」TextRank:基于图算法,看词在文档里「中心不中心」实际项目里,我更推荐TextRank。原因:TFIDF的问题:它只看词频分布,不懂语义。比如一篇讲「苹果手机」的文章,「苹果」和「手机」TFIDF都高,但哪个才是真正的主题?它分不清。TextRank的做法:把词当节点,词和词共现就连...
NER(命名实体识别)就是把「京东」「李宁」「上海市」这种专有名词从文本里抠出来。两条路:一、自建词库(AhoCorasick算法)适合:固定领域(自家品牌名、本公司历史项目名)速度:极快,毫秒级缺点:新词、热词跟不上工具:pyahocorasick二、用现成模型jiebaposseg:自带词性,识别粗,但能识别出人名、地名、机构名HanLP:效果好,支持医疗、法律等垂直领域BERTCRF:天花板...
做评论去重、问答匹配、推荐系统,都得算文本相似度。常见三种:余弦相似度(Cosine)原理:两个向量夹角的cos值适用:TFIDF、BERT向量都通用速度:快缺点:完全不懂语义,「手机」和「电话」相似度是0Jaccard原理:交集/并集适用:短文本、关键词集合速度:极快缺点:长度敏感,长文本失真编辑距离(Levenshtein)原理:把a变成b最少改几处适用:错别字检测、近重复评论速度:慢,Omn...
很多同学觉得自动摘要很高深,要BERT、要GPT。其实简单场景用老办法就够。TextRank不光能提关键词,还能做摘要:pythonfromtextrank4zhimportTextRank4Sentencetr4s=TextRank4Sentencetr4s.analyzetext=text,lower=True,source='allfilters'summary='。'.joins.sent...
直接用sklearn的TfidfVectorizer当然爽,但面试/做复杂需求时,手写一遍才能调优。核心公式其实就两行:tft,d=词t在文档d里的次数/d的总词数idft=log文档总数/包含t的文档数+1tfidf=tfidf手写版:pythonfromcollectionsimportCounterimportmathdeftfidfcorpus:n=lencorpusdf=Counterf...
文本要喂给模型,必须先转成向量。这条路线,基本是绕不开的进化史:第一代:Onehot词越多维度越高,极其稀疏现在基本不用了,除了作为讲解入门第二代:TFIDF经典、稳、可解释缺点:依然是稀疏矩阵,维度=词表大小第三代:Word2Vec/GloVe20132014的明星算法把词压成100300维稠密向量「国王男人+女人≈女王」这种语义关系能算出来中文推荐用腾讯的800万词向量,质量很高第四代:BER...
写完一个分析脚本,同事/客户怎么用?最朴素:改源码里的输入路径。但别人不会改Python。正解:用argparse做成命令行工具。pythonimportargparseparser=argparse.ArgumentParserdescription='评论分析工具'parser.addargument'input','i',required=True,help='输入文件'parser.add...
新手常写的代码:pythonapikey="skxxxxx"dburl="postgresql://localhost:5432/mydb"threshold=0.5看着没问题,改起来要命——换个环境(测试→生产)就得改源码。正确做法:配置和代码分离。最简单的方式用yaml:yamlconfig.yamlapikey:skxxxxxdburl:postgresql://localhost:5432...
新人写代码最爱:pythontry:everythingexcept:pass这是最差的做法,等于没写。正确的「三段式」:第一,只抓能处理的异常。pythontry:df=pd.readcsvpathexceptFileNotFoundError:printf"文件{path}不存在,请检查路径"exceptpd.errors.EmptyDataError:print"文件是空的"不要except...
我自己早期也是这样:全靠print调试,结果客户报问题时根本看不到当时的输出。正经做法是用logging:pythonimportlogginglogging.basicConfiglevel=logging.INFO,format='%asctimes%levelnames%names:%messages',handlers=logging.FileHandler'app.log',encodi...
做数据分析90%时间花在pandas上,但很多人写法很慢,还以为是数据量大。几个常见的「快写法」:1.不用apply,用向量化python慢df'len'=df.text.applylen快df'len'=df.text.str.len2.不用iterrows,用itertuplespython慢fori,rowindf.iterrows:...快(itertuples比iterrows快510倍...
很多人写完功能就跑,出了问题再改,改完再跑,反复循环。测试写过一遍的项目,改起来心里有底。最简单的入门:pytest。1.安装:pipinstallpytest2.文件命名:testxxx.py3.函数命名:testxxx4.写测试:pythondeftestcleantext:result=cleantext"HelloWorld!"assertresult=="helloworld"跑测试:p...
写文本处理100%离不开正则,分享我最常用的10个:1.邮箱:r'azAZ09.%++@azAZ09.+\.azAZ{2,}'2.手机号:r'139\d{9}'3.URL:r'https?://^\s+'4.@用户(微博/抖音):r'@\w\u4e00\u9fa5+'5.话题:r'^+'6.中文:r'\u4e00\u9fa5+'7.数字(整数/小数):r'?\d+\.?\d'8.HTML标签:r'...
写过FastAPI/Flask的都知道,后端API设计得好不好,直接影响前端同学的血压。几个原则:1.路径用复数名词,不出现动词GET/api/comments→获取列表POST/api/comments→创建GET/api/comments/{id}→获取单个2.用HTTP状态码表达结果200成功201创建成功400参数错误404资源不存在500服务器内部错误3.分页要规范GET/api/com...
前面聊过BERT,但都是直接用预训练模型。这篇讲怎么用自己的数据微调。最常见的任务:评论分类(好评/差评/中性)。最小可行流程:1.准备数据(几百到几千条)text,label"这个手机真不错",1"垃圾",02.切分数据集pythonfromsklearn.modelselectionimporttraintestsplitXtrain,Xtest,ytrain,ytest=traintests...
训练好的模型怎么给客户用?FastAPI+Docker是当前最主流的组合。FastAPI部分:pythonfromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPImodel=loadmodel启动时加载,请求时直接用classTextInBaseModel:text:str@app.post"/predict"defpredict...
做监督学习最头疼的不是模型,是数据标注。工具有几个,我推荐LabelStudio:开源、本地部署、数据不出公司支持文本、图像、音频、视频支持多人协作直接导出CoNLL/JSON格式部署:bashpipinstalllabelstudiolabelstudiostart浏览器打开http://localhost:8080,注册账号,新建项目,选模板(NER、分类、关系抽取都有)。实战经验:标注前先写...
做数据采集和分析,MySQL是迟早要碰的。但接单阶段用不到很深,基础会了就能开工。核心SQL十条:sql查询SELECTcol1,col2FROMtableWHEREcol1='x'LIMIT10;插入INSERTINTOtablecol1,col2VALUES'a','b';更新UPDATEtableSETcol1='y'WHEREid=1;删除DELETEFROMtableWHEREid=1;...
Redis是个内存数据库,快得离谱。接单阶段,我常用的就五个场景。场景一:缓存pythonimportredisr=redis.Redisifnotr.existsf"comment:{id}":r.setexf"comment:{id}",3600,getcommentid缓存1小时场景二:计数器pythonr.incr"article:123:views"文章阅读数+1场景三:排行榜pytho...
数据需要每天/每小时跑一次,怎么调度?按数据量从小到大:crontab(系统级):适合:简单任务,每天3点跑一次写法:03/usr/bin/python3/home/xxx/script.py缺点:没有日志、没有失败重试、依赖关系全靠人脑schedule(Python库):适合:一个进程里跑几个定时任务写法:pythonimportscheduleschedule.every.day.at"03:...
技术到位之后,客户从哪来?分享我自己接单用过的渠道:1.闲鱼/淘宝适合:小单、几百到几千优点:流量大、客户精准(搜索「数据分析」进来的就是有需求的)缺点:同质化严重,价格卷2.猪八戒/一品威客适合:中等单,几千到几万优点:有专门的「数据分析」类目缺点:平台抽成1020%,投标竞争激烈3.公众号/知乎适合:打造个人品牌,后期高客单做法:发技术文章,客户主动找缺点:见效慢,36个月起步4.B站/抖音技...
做数据分析,数据安全是底线。这块踩雷,轻则丢客户,重则吃官司。几个必须知道的:1.数据归属客户给的数据,所有权归客户。用完要销毁,别存硬盘上散播。建议:项目结束后删本地文件,或归档到加密硬盘。2.个人信息保护法涉及个人信息的(手机号、身份证、地址、姓名),必须:加密存储限制访问(谁用谁知道)用完及时删除客户说「反正数据是我抓的」,你也要提醒:未经授权采集个人信息,责任主体在采集方和使用方。3.客户...
技术做完了,交付才是关键。几个让客户满意度拉满的细节:1.交付清单发一份Excel,列出每项交付物的文件名、用途、打开方式。客户IT部门照着清单部署。2.演示视频录510分钟的操作演示,边操作边讲。客户给领导汇报直接用。3.README项目根目录一个README.md,讲清楚:这是什么怎么安装(一条pip命令)怎么运行(一条python命令)出问题怎么办(留你微信)4.报告格式PDF,标题页+目录...
最后说点掏心窝的。很多兄弟把接单当成「赚外快」,这没错,但天花板太低。真正的路线分三阶段:阶段一:接单变现(0→5万)主要靠时间换钱学会谈需求、做交付、积累案例适合:在校生、刚转行、急需现金流阶段二:产品化(5万→50万)把反复做的项目做成SaaS/工具客户从「一次性付钱」变成「订阅」例子:评论分析工具、舆情监控大屏、行业报告生成器这个阶段要做的不只是技术,是产品设计、销售、客服阶段三:品牌化(5...
技术人做IP,最忌讳「端着」。分享几个让客户愿意找你、愿意转发你的小习惯:1.输出「有用」的内容别发「今天学了PyTorch」——没人关心。要发「用PyTorch解决了X问题,关键代码5行」——这才是内容。2.配图讲究知乎、公众号发技术文章,最常被转的是带漂亮图表的。自己做项目时,把数据可视化截图保存,顺手发出来。3.说人话别装专家。客户最讨厌的是「他说话听不懂」,不是「他技术不够强」。例子:「这...
新人最常问我:这个项目该报多少?核心不是「贵不贵」,是「你值多少」。我自己用的三步估算法:第一步:拆任务数据预处理:X小时模型训练:Y小时可视化:Z小时报告撰写:W小时测试/沟通:V小时总工时=X+Y+Z+W+V第二步:留buffer总工时×1.5=实际报价工时这个buffer用来应对沟通、返工、突发问题第三步:算钱按你的「时薪」算在职时薪×2(私单溢价,因为没社保、没福利、风险自担)或者按行业:...
接单最常见的问题不是「做不出来」,是「做出来客户不要」。根源:需求没对齐就开始干活。分享一个我每次开工前必发的需求确认邮件模板:主题:项目名需求确认请回复xx您好,根据上次沟通,我整理了一下本次项目的需求,请确认:1.项目背景:解决xxx业务问题2.数据来源:XXX,数据量约XXX条3.交付物:数据报告(xxx格式)可视化图表(xxx张)模型/代码(xxx语言)4.时间节点:预计X月X日交付初稿,...
23 款 Python 文本分析软件选购指南做淘宝/抖音/论文/研究 6 年,最常被老板问的问题不是”哪个软件好”,而是”我到底该买哪个”。 我整理了 23 款商品 × 6 大场景 × 5 个预算档位 的对照表...
直方图实战:从 50 万条评论里看”评分是怎么分布的”老板们拿到一份数据,第一反应不是平均值,而是 “这数据到底长啥样?” “5 万条评论的评分,是集中在 5 星还是分散的?“ “有没有 1 星差评爆发的异常?“ “2 个商品的评分分布有...
TTS 文本转语音实战:edge-ttsx 离线真人音色,3 行代码批量合成老板们做抖音/视频号/有声书/广告最头疼的事: 找真人配音,200 字 100 块,1 万字 5000 块 用免费 TTS,机械感强...
语义网络图谱:把 10 万条评论变成”一张可缩放的关系地图”上次讲了共现矩阵 + 网络关系图(共现网络图软件),老板们实操时提了新需求: “10 万个节点画出来太密了,能不能只看核心 100 个?” “我想知道哪些词是枢纽——和所有词都连...
桑基图实战:从 50 万条评论里看”用户从哪儿来到哪儿去”老板们最常问的问题: “从搜索词进来的用户,都点去了哪些商品?” “LDA 主题 T1(聊’创新驱动’)是怎么’流’到 T2(聊’数字经济’)的?” “公司的钱从收入到成本再到利润...
数据采集实战:3 层抓取架构 + 反爬对策做文本分析的第一步是什么?把数据搞到手。 老板们最常问:”我手上有 1 万条评论想跑情感分析”——但仔细一问,要么是 200 条样本、要么是 5 个 Excel 拼起来的、要么直接是 PDF 截图。...
Word2Vec 实战:让机器理解”小米”和”华为”为啥经常一起出现老板们最神奇的需求:“让机器知道小米和华为是竞品”、”让 AI 找出一组词的相关词”。 传统词频分析只能告诉你”小米”和”华为”各出现多少次,不能告诉你它们语义上相关。Wo...
词频分析实战:jieba + nltk 双引擎,中英文词频词性一站搞定词频分析是 NLP 最基础也最实用的工具——看用户天天在聊什么、竞品文案高频用词、专业领域术语识别。但中文和英文要用的工具完全不一样: 中文:必须先分词 → 用 jieb...
共现矩阵 + 网络关系图:3 步把 10 万条评论里的”隐藏关系”挖出来老板们最常问:“差评”和”客服”是同一拨人说的吗?”物流”和”退货”哪个先出现? 答案就在共现关系里——两个词在同一段文本里同时出现的频次。我们的 共现矩阵和网络关系图...
主题演化关系挖掘:桑基图 + 相似度矩阵,2 张图讲透主题怎么”流”上篇博客讲了主题强度演化(某个主题在每个时间窗有多火)。但老板们更关心的是主题之间的关系——T1(聊”创新驱动”)是怎么”流”到 T2(聊”数字经济”)的?T3 是从 T1...
LDA 主题演化分析:追踪 5 万条政策文件 5 年的热点变迁LDA 跑出来的主题是”静态的”——只能告诉你这个语料库在讲什么。老板们更想知道的是:主题怎么随时间变?今年和去年比,哪些主题变火、哪些变冷? 这就需要 LDA 主题演化分析——...
LDA 困惑度 vs 主题一致性:到底该信哪个指标选 K 值?LDA 主题数 K 选多少,是老板们问得最多的问题。答案是没有”标准答案”——但有 2 个客观指标可以参考:困惑度(perplexity) 和 主题一致性(coherence)。...
数据预处理:4 步把 10 万条脏评论变成可分析的干净语料老板们最常踩的坑:拿到 10 万条评论直接跑 LDA,跑出来全是无意义主题。 问题不在算法,在数据——脏数据里 30% 是 URL、@用户、表情、空行、重复行。垃圾进,垃圾出。 我们...
LDA 主题分析:一键生成可交互气泡图LDA(Latent Dirichlet Allocation)是文本主题挖掘的经典算法。但老板们用 Python 跑 LDA 时经常卡在两件事: 主题数 K 选多少? 凭感觉、试 5 遍 结果怎么可...
情感分析软件:双引擎让准确率提升 35%做评论分析、舆情监控、用户调研的老板肯定知道——情感分析的坑太多了: 单用 SnowNLP:电商评论准确率只有 71% 单用百度 API:要联网、要钱、限速 单用关键词词典:新词跟不上、维护地狱 ...
用 Python 词云图让所有字大小一致词云图默认根据词频调整字号——频次高的字大、频次低的字小。但实际场景中(签名墙、姓名拼图、Logo 文字),我们经常需要所有字大小完全一致。 本文教您 4 行核心代码搞定。 一、传统词云的问题直接用 ...