问题

主题模型(topic model)到底还有没有用,该怎么用?

回答
主题模型(Topic Model):还在“有用”吗?如何“用”?

曾几何时,主题模型(Topic Model),尤其是LDA(Latent Dirichlet Allocation),在文本挖掘领域可谓是风光无限。它承诺着一种“读懂”大量文本、从中发现隐藏主题的魔法,让那些看似杂乱无章的文字,瞬间变得有条理、有洞察。那么,时至今日,当更强大的深度学习模型纷纷登场,主题模型是否已经沦为“时代的眼泪”?它还有没有用?该怎么用?

答案是:有用,但要看场景,并且用法也在不断进化。

主题模型“还有用”吗?—— 依然有其独特的价值

尽管GPT这类大型语言模型(LLM)在生成文本、理解复杂语义方面表现出色,但主题模型依然在许多应用场景下有着不可替代的优势。这里我们不把主题模型看作是LLM的“替代品”,而是看作一种“互补”的工具,或者在某些特定需求下,是“更优”的选择。

1. 解释性与可控性: 这是主题模型最核心的优势。LLM模型通常是“黑箱”,我们很难知道它为什么会生成某个内容,或者它背后是如何理解文本的。而主题模型,虽然也有一定的“黑箱”成分,但其输出(如每个主题下的核心词汇、文档在各主题下的分布)是相对直观的,更容易被人类理解和解释。我们可以清晰地看到“这个主题主要关于XX,关键词是A, B, C”,“这篇文章主要讨论了Y,其中Z主题占了很大比重”。这种可解释性在很多领域至关重要,比如:
新闻舆情分析: 了解公众对某个事件或政策的主要关注点。
用户反馈分析: 挖掘用户对产品或服务的具体意见和建议。
学术研究: 探索某一领域文献的演变趋势、研究热点。
金融市场情绪分析: 识别市场对特定公司或行业的情绪导向。

2. 高效处理大规模文本: LLM虽然能力强大,但处理海量文本,尤其是要从中提取结构化信息时,其计算成本和效率可能不如经过优化的传统主题模型。主题模型能够以相对较低的资源,在短时间内对成千上万甚至数百万篇文档进行主题建模,找出宏观的文本分布特征。

3. 发现“未知的未知”: LLM擅长根据已有数据生成或预测,它更像是“已知”的放大器。而主题模型,尤其是探索性地使用时,更像一个“侦探”,可以帮助我们从海量文本中“无监督”地挖掘出一些我们事先可能没有预料到的、隐藏在数据深处的“模式”和“主题”。

4. 作为LLM的“辅助”工具: 并非所有场景都需要LLM的全部能力。有时候,将LLM与主题模型结合使用,能达到更好的效果。例如,我们可以先用主题模型识别出文档集中的几个主要议题,然后针对某个特定议题,再调用LLM进行更深入的分析、摘要或生成。

主题模型“该怎么用”?—— 从基础到进阶

要用好主题模型,关键在于理解它的核心思想,并根据具体需求选择合适的方法和工具。

1. 理解核心思想:

本质上,主题模型是一种概率模型,它试图回答两个核心问题:

文档是如何由主题组成的? (即:一篇文档是关于哪些主题的,每个主题占多大比重?)
主题是如何由词汇组成的? (即:一个主题的核心特征是什么,它由哪些词汇构成,这些词汇出现的概率有多高?)

最经典的主题模型LDA,其基本假设是:

文档是主题的混合: 任何一篇文档都可以看作是多个主题按照一定比例混合而成的。
主题是词汇的混合: 任何一个主题都可以看作是多个词汇按照一定概率分布生成的。

基于这个假设,LDA通过迭代计算,找出最能解释现有文本数据的“主题词汇”和“文档主题”的概率分布。

2. 准备数据:

这是任何文本挖掘工作的第一步,主题模型也不例外。

文本收集: 确定你要分析的文本来源,可以是新闻报道、社交媒体帖子、学术论文、用户评论等。
文本预处理: 这是至关重要的一步,直接影响建模效果。
清洗: 去除HTML标签、特殊符号、URL、噪声信息等。
分词: 将连续的文本切分成有意义的词语(中文尤其需要)。
去除停用词: 移除“的”、“是”、“在”等常见但对主题贡献不大的词语。
词形还原/词干提取: 将词语还原到其基本形式(例如,“running”、“ran”都变成“run”),对于英文文本尤为重要。
TFIDF或词频统计: 决定如何表示词语在文档中的重要性。

3. 选择合适的模型:

LDA(Latent Dirichlet Allocation):
优点: 经典、成熟、可解释性强、计算相对高效。
缺点: 对词序不敏感,主题之间是独立的,需要预设主题数量(K值)。
适用场景: 需要直观理解文本大体内容,发现宏观主题时。

NMF(Nonnegative Matrix Factorization):
优点: 同样是基于矩阵分解,可解释性也不错,有时也能得到与LDA类似或更好的结果。
缺点: 同样需要预设K值,主题解释性可能略逊于LDA。

基于深度学习的主题模型(如ProdLDA, CTM, BERTopic等):
ProdLDA (Probabilistic Topic Model): 结合了概率图模型和深度学习,将LDA的生成过程用神经网络实现,效率更高,并且可以利用预训练的词向量(如Word2Vec, GloVe)来初始化词分布,使得主题更具语义化。
CTM (Correlated Topic Model): LDA假设主题之间是独立的,而CTM则允许主题之间存在相关性,这更符合现实世界中主题的复杂关系。
BERTopic: 这是近年来的一个亮点,它巧妙地将 SentenceBERT(一种强大的句子编码模型) 与 HDBSCAN(一种聚类算法) 结合。BERTopic的优势在于:
无需预设主题数量K: HDBSCAN可以自动发现主题数量。
利用上下文信息: SentenceBERT能够捕捉词语的上下文含义,使得主题更加精炼和有意义。
生成更具解释性的主题: 它使用TFIDF来提取每个主题下的代表性词语,也支持直接用LLM来精炼主题描述。
可视化能力强: 方便用户探索主题结构。
适用场景: 当你希望主题之间有更强的关联性,或者希望模型能够自动发现主题数量,或者希望利用词的上下文信息,并且对计算资源有一定要求时, BERTopic 是一个非常不错的选择。

4. 模型训练与调优:

确定主题数量K(对于LDA/NMF):
手动尝试: 训练不同K值的模型,观察主题质量。
评估指标:
困惑度(Perplexity): 越低越好,表示模型对新数据的拟合程度。
主题一致性(Topic Coherence): 衡量主题词语之间的语义相关性,越高越好。例如,UMass, Cv, NPMI等指标。
“最佳”K值: 通常在困惑度下降趋于平缓或主题一致性达到峰值时选择。

超参数调整:
LDA的alpha和beta: alpha影响文档中主题的稀疏性(一个文档主题倾向于集中还是分散),beta影响主题中词汇的稀疏性(一个主题倾向于集中于少数词还是分散于大量词)。通常设置为均值为1/K的Dirichlet分布。
迭代次数(passes/epochs): 足够多的迭代次数以保证模型收敛。

5. 模型评估与解释:

查看主题词汇: 这是最直接的评估方式。仔细阅读每个主题下概率最高的词汇,判断这个主题是否具有人类可理解的含义。
查看文档主题分布: 随机抽取一些文档,看它们在哪些主题上得分较高,与实际内容是否吻合。
可视化:
词云图: 直观展示主题词汇的权重。
pyLDAvis: 一个非常流行的交互式LDA可视化工具,可以展示主题之间的关系、每个主题的代表词以及词语在主题中的权重。
BERTopic的可视化: BERTopic提供了多种可视化选项,如tSNE/UMAP降维后的主题聚类图,方便查看主题间的关系和文档的归属。

6. 应用场景的具体实践:

新闻聚合与分类: 将大量新闻按主题进行分类,方便用户浏览。
用户评论分析: 识别用户评论中的主要关注点(如:功能、价格、服务、BUG等),从而改进产品。
文献计量学: 分析科学文献的演进,发现研究前沿和趋势。
社交媒体分析: 监测某个话题在社交媒体上的讨论焦点和情绪。
内容推荐: 根据用户阅读过的主题,推荐相似主题的内容。
知识图谱构建辅助: 从文本中提取实体及其关系,构建知识图谱,主题模型可以帮助理解实体所属的领域。

7. 进阶用法与注意事项:

与LLM结合:
主题提取与摘要: 先用主题模型识别出文档的核心主题,再用LLM针对每个主题生成更精炼的摘要或描述。
主题分类辅助: 使用主题模型对文档进行初步聚类,然后用LLM对每个类别的文档进行细粒度的分类或情感分析。
LLM生成内容的主题分析: 分析LLM生成文本的主题分布,评估其内容质量或偏向性。
模型融合: 结合不同模型的优点。例如,使用BERTopic自动发现主题,然后将主题作为特征,再训练一个传统的分类器。
主题的演化: 如果数据具有时间序列特性,可以构建随时间变化的主题模型,观察主题的出现、消亡和演变。
领域特定词汇: 对于特定领域,需要构建或使用领域词典来改进分词和停用词过滤。
避免“鸡肋”主题: 仔细评估模型输出的每一个主题,有些主题可能只是几个无关词汇的随机组合,或者非常零散,没有实际意义,需要将其合并或舍弃。
人类的参与: 永远不要完全依赖模型! 人类的领域知识和判断是解释和评估主题模型结果的关键。模型是一个工具,帮助我们发现线索,最终的洞察和决策需要人类来完成。

总结:

主题模型,尤其是LDA,虽然不是最新、最“炫酷”的技术,但它凭借其出色的解释性、相对高效的计算能力以及发现数据隐藏模式的能力,在特定场景下仍然非常有价值。更重要的是,像BERTopic这样结合了深度学习和聚类算法的新一代主题模型,正在克服传统方法的局限,提供更强大的功能。

关键在于:

理解你的需求: 你是为了探索性分析、还是需要清晰的解释性、亦或是自动化处理?
选择合适的工具: LDA、NMF、ProdLDA、CTM,还是BERTopic?
精细化预处理: 数据质量决定了模型效果的上限。
重视评估与解释: 结合定量指标和人工判断。
敢于创新: 将主题模型与LLM等新技术结合,开辟新的应用可能。

所以,主题模型并没有过时,它只是在特定领域或与其他技术协同工作时,依然扮演着重要的角色。好好理解它,用对地方,它依然是文本分析工具箱里一把锋利的“刀”。

网友意见

user avatar

主题模型当然有用咯,谁用谁知道!这次我来展示下它的9个“变种”(短文本、细粒度、加入先验知识、作者写作偏好、主题内涵随时间的变迁、融入词嵌入特性、语言模型加持、transformer系语境加持、图文混合主题聚合):

  • Biterm Topic Model
  • Multi-Grain Topic Model
  • Topic Modeling with Minimal Domain Knowledge
  • Author-Topic Model
  • Dynamic Topic Models
  • Embedded Topic Model /LDA2VEC
  • Topically-Driven-Language-Model
  • BERTopic
  • Image-Text Mix Topic Model

(1)短文本主题建模的利器 ---Biterm Topic Model

从原理上说,BTM是一个非常适合于短文本的topic model,同时,作者说它在长文本上表现也不逊色于LDA。
BTM模型首先抽取biterm词对。抽取的方法是:去掉低频和stopword;对于短文本(如tweets或百度知道等),取一个doc中的任意两个词对 ;对于长文本,需要两个词在一定的距离之内,这个窗长一般取到30~60效果较好.然后通过biterm对文档集合进行建模.

LDA的问题是稀疏性。LDA中每个文档对应一个theta,每个词对应一个z。对于短文本,由于词少,z-->theta这一步的统计可能不具备统计意义。因为每个文本单独对应于theta,所以增加文本数量不能克服这种短文本带来的缺陷。

传统的解决之道有两个。1.是将多个短文本聚合成一个长文本。比如LDA-U将一个user的多个发言聚合在一起减少稀疏影响。但这种做法与应用相关,需要有外部信息来辅助找到聚合的单位。2.是利用一个长文档文本集作为辅助数据,将长文本的一些信息先以某种形式抽取反应到先验中,从而间接地提供给短文本。看似很美好,问题在于,与transfer learning类似,这个知识能不能传还两说,得先找到一个总体主题分布类似的长文档集。

总体来说,LDA并不适用于短文本,LDA-U略好,但是基于user的聚合受限于应用和领域知识。

mixture of unigram在这里表现比LDA系列更好,原因是它对于所有文档用同一个theta,克服了短文本稀疏性问题。这个模型的问题是,它假设了整个文档对应于一个z,这比较粗糙和strong了,会导致一个topic类内距离很大,因为对于长文本,较远的段落之间可能语义差异很大了。在长文本以及K较大的时候,这个模型效果会比较差,但在短文本上,这个缺陷倒是不那么明显,因此效果好于LDA系列

最后是BTM模型。可以认为BTM综合了上述二者的优点。BTM跟mix一样,利用了整个文本集合来估计一个theta,解决了稀疏问题(我们通常有海量数据)。放宽了mix中对整个doc必须同属于一个z的约束(相当于从整doc放松到了窗口长度类的两个词),加强了LDA中每个词对应于一个Z的假设(BTM中约束了窗长内的两个词组成一个biterm对应于一个z)。这个假设很接近于人类认知,因为我们知道,通常在较短的一段文本内,topic变化不大。

说一句题外话,前几天听了一个知识图谱的讲座。他们也是用一个共现词对来排歧作为LDA的补充。比如 李娜+青藏高原 这个词对,可以很大程度上将李娜和其他人(比如另一个做音乐的李娜,无法被LDA所区分)区分开来。unigram是一个极端,一大堆词是另一个极端了。BTM相当于是这种思路在TM系列模型中的一个探索。从另一个角度,2gram或许也可以替换term作为LDA的单元,而BTM的尝试是将连续的2gram放开,允许中间有一个窗长。总的来说,这是一个相当有意思的思路,而且非常nature。

原文:blog.csdn.net/windows2/

(2)多主题文本建模的利器 --- Multi-Grain Topic Model

考虑这样一个应用场景,有关于联想、戴尔、苹果三台笔记本电脑的若干评论数据,Multi-Grain Topic Model(细粒度的主题模型)基于全局和局部信息,既发现了宏观上的大主题,比如评论对应的品牌 --- 联想、戴尔、苹果;微观上的小主题,苹果电脑对应的性能话题、联想电脑对应的性价比话题等,二者相互补充,比LDA返回的信息量要大很多。

(3)掺入少许先验知识的主题模型---Topic Modeling with Minimal Domain Knowledge

Topic Modeling with Minimal Domain Knowledge(加入少许先验知识的主题模型)通过关联解释(Correlation Explanation )进行主题建模会产生丰富的主题,这些主题可以最大限度地提供一组文本数据的信息。这种方法优化了稀疏二进制数据(Sparse Binary Data)的Correlation Explanation框架,允许对大型语料库进行主题建模。此外,该方法支持分层主题建模(Hierarchical Topic Modeling),提供一种整合领域知识的机制(Integrating Domain Knowledge) ---通过锚定词汇(Anchor Words)和信息瓶颈(The Information Bottleneck)来实现。这种半监督的锚定(Semi-Supervised Anchoring)是灵活的,允许用户提升进主题表示的效果 --- 通过添加指定主题的锚定词汇来得到解释性较高的主题。

与LDA(隐狄利克雷模型)不同,CorEx主题模型及其分层和半监督扩展不会对文档的生成方式做出任何假设。但是,它们仍然可以在各种指标中找到具有一致性和有意义的主题。一篇TACL论文对LDA的无监督和半监督变体进行了详细比较:

Gallagher,Ryan J.,Kyle Reing,David Kale和Greg Ver Steeg,《Anchored Correlation Explanation: Topic Modeling with Minimal Domain Knowledge》 ,2017

此项目可用于任何稀疏且二进制的数据集(Any Sparse Binary Dataset)。原则上,0 ~ 1范围内的连续值也可以用作输入,但是其效果未得到很好的测试。

以下以50,000条汽车评论数据为例,展示该模型的核心代码和结果:

       #词汇表 words = list(np.asarray(text_pred.get_feature_names()))  #加入锚定词汇,分别是汽车油耗、外观、噪音和空间这四个先验主题关键词列表 anchor_words = [['油耗','省油'],  ['外观','外形','颜值','线条','前脸','时尚','造型','流畅'], ['噪音','胎噪','噪音控制','隔音'], ['空间','座位','拥挤']]    # 训练带入先验知识的主题模型 topic_model = tp.Coret(                         n_hidden=20 ,                         max_iter=100000,                         verbose=0,                         count='fraction',                         seed=2019                                              )       topic_model.fit(X_pro , #输入为稀疏词汇表示    words=words,    anchors = anchor_words,  anchor_strength=10  #锚定强度,数值越大,主题模型训练的结果受锚定词汇的影响就越大  )     

从训练好的主题模型中看看某类结果:

       topic_model.get_topics(topic=1, n_words=50)     

[('外观', 0.4301756671083077),
('颜值', 0.10011823545089653),
('外形', 0.06618560083637216),
('时尚', 0.054193038069410004),
('前脸', 0.04076140897169324),
('线条', 0.03466495921583512),
('造型', 0.03414006949798674),
('外观设计', 0.01699050254486039),
('流畅', 0.015337625168866267),
('动感', 0.013126344098356961),
('运动感', 0.009363907127811736),
('审美', 0.008732302601110832),
('流线型', 0.006803817188302315),
('流线', 0.005895597474292352),
('修长', 0.005593062618077139),
('大气', 0.0429432014991769),
('漂亮', 0.02758077948725461),
('好看', 0.026179714467314867),
('霸气', 0.019231105222624518),
('车身', 0.011562041254648874),
('帅气', 0.010466043602329844),
('年轻', 0.009713247431314121),
('耐看', 0.005438103102823669),
('侧面', 0.005305290826161348),
('硬朗', 0.0038887516195419613),
('优美', 0.0029589904380173705),
('拉风', 0.002908911717486192),
('担当', 0.0023775974040011207),
('年轻化', 0.0018363016664206797),
('前卫', 0.001832502305643267),
('颜控', 0.0015342721148661927),
('美观', 0.0014017725126286868),
('外貌协会', 0.0012673785507941234),
('始于', 0.0012147432527814328),
('最喜欢的', 0.0010902856328509434),
('大嘴', 0.0010611885609235778),
('非常时尚', 0.0009028912355990731),
('时尚运动', 0.0008869927507607518),
('霸气十足', 0.0008189071364794647),
('霸气侧漏', 0.0008159337276194864),
('我很喜欢', 0.0007621695922389888),
('高大', 0.0007571559888997631),
('征服', 0.0007147440291617015),
('很喜欢', 0.0006925125995887599),
('运动时尚', 0.0006689225076177874),
('耐看型', 0.0005580945500139648),
('正义', 0.0005483286604124153),
('威武霸气', 0.0005316584992590537),
('改款', 0.0005285499612510017),
('小巧', 0.0005192749777102133)]

再看看整体的效果:

       topics = topic_model.get_topics(n_words=30)   for topic_n,topic in enumerate(topics):     words,mis = zip(*topic)     topic_str = str(topic_n)+': '+','.join(words)     print(topic_str)     

0: 油耗,省油,平均,市区,百公里,综合,经济,上下班,磨合期,接受,油价,一公里,堵车,百公里油耗,惊喜,省钱,最低,节省,油钱,毛钱,费油,七个,油表,拥堵,国道,下降,成本,想象,郊区,预期
1: 外观,颜值,外形,时尚,前脸,线条,造型,外观设计,流畅,动感,运动感,审美,流线型,流线,修长,大气,漂亮,好看,霸气,车身,帅气,年轻,耐看,侧面,硬朗,优美,拉风,担当,年轻化,前卫
2: 隔音,噪音,胎噪,噪音控制,效果,听不到,风噪,安静,降噪,关上,很安静,听不见,隔绝,两个世界,外界,窗户,杂音,车外,静谧,nvh,车隔音,隔音棉,抑制,什么声音,密封,噪声,开窗,超棒,地步,静音性
3: 空间,拥挤,座位,后排,宽敞,后备箱,乘坐,内部,储物,车内,前排,腿部,身高,超大,头部,够用,轴距,二郎腿,充足,利用率,压抑,宽松,宽裕,三个人,个子,充裕,成年人,拉货,前后排,绰绰有余
4: 代步,问题,生活,用车,容易,天气,工具,平常,不好,享受,下雨,下班,车里,车真,过车,gl8,回老家,跑跑,外面,不多,放松,上车,没出,毛病,起码,没事,下车,开开,外出,第二天
5: 满意,车子,喜欢,车最,适合,家用,就是他,部分,类型,面子,和动力,家庭,莫过于,最最,探界者,需求,我喜欢的,三点,卡罗拉,说到,对我来说,说到最,喜欢的,商务,无非,普拉多,女生,霸道,女孩子,比较适合
6: 座椅,舒服,音响,放倒,调节,舒适,包裹,皮质,bose,视野,包裹性,开阔,地板,真皮,音质,位置,中央,舒适度,音乐,柔软,坐上,玻璃,长途,腰部,纯平,支撑,一键,主驾驶,坐姿,扶手
7: 吸引,符合,颜色,红色,年轻人,白色,第一眼,回头率,魂动,气质,犀利,黑色,深深,个性,不失,低调,外表,张扬,稳重,车漆,骚气,优雅,眼看,眼球,看脸,美式,轿跑,大街,口味,独特
8: 非常,不错,同级,优势,启辰,无论是,d60,空间表现,总体,优点,别车,一体,水平,感觉特别,真心,配合,均匀,体现,整个车,稍微,值得一提的,提升,空间感觉,人马,发挥,程度,实用性,缺点,车做,组合
9: 价格,性价比,价位,优惠,车型,品牌,级别,合资,便宜,实惠,合资车,国产车,预算,国产,同等,力度,合适,大众,迈锐宝,中华,看过,销售,十万,落地,划算,哈弗,值得,裸车,车中,亲民
10: 动力,发动机,超车,加速,变速箱,油门,强劲,起步,提速,推背感,涡轮,平顺,充沛,换挡,速度,给油,增压,高速,输出,随叫随到,排量,很快,声音,一脚,顿挫感,舍得,马力,自然吸气,顿挫,自吸
11: led,格栅,进气,大灯,晚上,尾灯,日间行车灯,车灯,镀铬,日行灯,炯炯有神,前大灯,转向灯,远近,亮度,灯光,视觉,眼睛,车顶,流水,有神,大眼睛,装饰,协调,点亮,夜间,光源,眼大,白天,冲击力
12: 操控,底盘,驾驶,精准,转向,扎实,灵活,转弯,轻松,行驶,性能,方向,上手,操控性,乐趣,指向,路面,调教,悬挂,通过性,颠簸,轻盈,平稳,过程,地盘,虚位,体验,调校,路况,弯道
13: 功能,配置,自动,巡航,实用,倒车影像,钥匙,全景,后视镜,电动,导航,胎压监测,天窗,空调,一键启动,大屏,影像,齐全,中控,自适应,加热,启动,雷达,启停,定速,倒车,定速巡航,多功能,手机,语音
14: 内饰,设计,做工,风格,用料,精致,整体,豪华,车头,上档次,十足,简洁,科技感,大方,腰线,给人,高端,饱满,中控台,尾部,搭配,车尾,档次,简约,细节,整车,轮毂,气息,充满,圆润
15: 马自达,阿特兹,宝马,创驰蓝天,蓝天,凯美瑞,新款,老款,跑车,奥迪,奔驰,凯迪拉克,君威,有点,昂克赛拉,传统,完美,全新,日系车,cx5,东瀛,形容,雅阁,设计师,设计理念,惊艳,改变,钢丝,称号,打动
16: 朋友,选择,时间,suv,试驾,当初,提车,选车,老婆,一眼,回家,家里,cx4,一段,身边,看中,轿车,大家,推荐,网上,同事,打算,差不多,纠结,相中,媳妇,看上,上班,好多,印象
17: 孩子,一家人,出行,自驾游,接送,小孩,出门,家人,周末,出去玩,老人,出游,游玩,全家,行李,旅行,大人,旅游,出去旅游,睡觉,安全座椅,物品,宝宝,排空,行李箱,休息,家里人,购物,排放,搬家
18: #NUMBER,公里,担心,不用,显示,抬头,开车,以内,时速,宝骏,体重,来回,双离合,手自一体,小时,实际,爱信,加油,保持,里程,数据,一千,全程,一万,车速,正常,死角,老家,一趟,自动挡
19: 系统,方向盘,斑马,手感,仪表盘,液晶,安全性,操作,保养,电子,新手,质量,刹车,保障,放心,材料,省心,清晰,行车,按键,仪表,费用,保证,后期,耐用,助力,品质,软质,碰撞,材质

(4)揭示不同作者写作主题分布的主题模型 --- Author-Topic Model

ATM模型(author-topic model)也是“概率主题模型”家族的一员,是LDA主题模型(Latent Dirichlet Allocation )的拓展,它能对某个语料库中作者的写作主题进行分析,找出某个作家的写作主题倾向,以及找到具有同样写作倾向的作家,它是一种新颖的主题探索方式。

笔者之前分析过“人人都是产品经理”上作家的写作主题,分析某些牛X作家喜欢写哪方面的文章(比如“产品运营”、“数据分析”、“新媒体运营”等)写作了啥,主题相似度的作者有哪些。

首先,先从文本中“析出”若干主题,经过探索,10个主题的区分度正好。根据各个主题下的主题词特征,笔者将这10个主题归纳为 :“行业动态”、“电商运营”、“商业模式”、“产品运营”、“社交媒体”、“互金产品”、“数据运营”、“用户研究”、“产品设计”和“新媒体运营”。

同时,在数据处理的过程中,模型建立了作者(author)、主题(topic)及文档(document)之间的映射关联关系,以dict的形式保存数据。

(5)分析话题热点变迁的主题模型 --- Dynamic Topic Models

蕴含时间因素的主题,尽管它包含的关键词会随着时间的变化而产生相应的变化,但它如构成要素不断更新换代的“忒修斯之船(The Ship of Theseus)”一般,即使同一主题下的开端和末尾中的主题词没有一个是相同的,但还是原先的主题,保留有相同的语境。(By having a time-base delement to topics, context is preserved while key-words may change.)

针对某个话题随时间的变迁情况(This implements topics that change over time)。鄙喵运用的模型是DTM模型 (Dynamic Topic Models ),它是“概率主题模型”家族的一员,用于对语料库中主题演变进行建模。

还是针对人人都是产品经理上的文章数据,先从“产品运营&数据分析”中“解析”出如下6个子话题,它们是“运营”、“商业模式”、“流量运营&数据分析”、“品牌营销&数据分析”、“电商运营”和“内容运营”,如下表所示:

针对Topic2,也就是“流量运营&数据分析”在2012.05~2017.07间的话题变迁情况感兴趣,于是将这6年间出现的主题词重新整合,制成下面的热力图:

上图中纵轴是主题词,横轴是年份,颜色由浅入深代表数值的由小到大。从中可以明显的看出,“流量运营&数据分析”子话题下的“数据”、“数据分析”、“运营”和“业务”在该话题中始终处于“核心地位”,保持较高且稳定的word_prob值。而“渠道”、“游戏”、“互金”在近3年的word_prob值有了较大的提升,说明社区的作者在近期比较关注这3个主题词所代表的领域,间接表明它们在互联网中的话题热度呈现上升趋势。

(6)与词嵌入融合的主题模型 --- Embedded Topic Model

主题模型的主要功能之一就在于分析大量文档以学习其中有意义的词汇模式和语义内涵。 但现有的主题模型都存在一个问题 --- 在处理巨量且存在许多长尾词、低频词的情况下,现有的很多主题模型都无法学习到具有可解释性、便于人们理解的主题。 为此,嵌入式主题模型(ETM,Embedded Topic Model )应运而生,这是一种将传统主题模型与词嵌入(Word Embeddings)“嫁接”在一起的文档生成模型。 特别地,它使用分类分布(Categorical Distribution)对每个词汇进行建模,其自然参数是词嵌入及其嵌入的指定主题(Assigned Topic)之间的内积。


由此,即使是在用于海量词汇表且存在稀有词、长尾词的情况下,ETM仍然能发现可解释的主题。 在相关作者的论文中,发明者还表示它在主题质量和预测性能方面优于现有的主题模型,例如LDA。

(7)理解自然语言的利器---LDA2VEC

lda2vec模型试图将word2vec和LDA中的最佳部分混合到一个框架中。 word2vec在捕捉词汇之间的词法关系方面能力很强,但是生成的向量在很大程度上无法解释,并且很难表征文档。 而另一方面,LDA可以被很好地被理解,但是不能像word2vec这样对本局部词汇关系进行建模。 此时LDA2VEC应运而生,该模型可以构建词汇和文档主题,使其可解释。

与LDA相比,lda2vec还包含更多的上下文语境和语义特征。 LDA表明词汇是由文档向量所生成的; 但是文本数据中可能会有各种影响主题的“边信息”。 例如,某个客户在某个特定时间、某个特定区域中写了关于某个特定item ID的评论。 在这种情况下,lda2vec会提供所有的item(例如,从衬衫中分离牛仔裤),时间(冬季与夏季),地区(沙漠与沿海)和客户(运动与职业装)的主题。

(8)Topically-Driven-Language-Model

本文作者Jey Han Lau, Timothy Baldwin and Trevor Cohn (2017))创造性的将LDA主题模型和语言模型融合在了一起,可以通过语言模型生成的语句来解释主题,将其中的语言模型换成时下流行且强大的GPT2,并结合PPLM(Plug and Play Language Models: a Simple Approach to Controlled Text Generation)绝对是大杀器,但是速度贼慢。。。。

感兴趣的可以去读原文《Topically Driven Neural Language Model

下面是关于新冠肺炎疫情的若干新闻的模型分析结果片段:

Epoch =12001 TRAIN 77864/77864: tm ppl = 46573.947; lm ppl = 507.707; word/sec = 9449.5 VALID 77864/77864: tm ppl = 40674.441; lm ppl = 350.481; word/sec = 16706.0 Topics ====== Topic 0 [ 10.51 ] : [培训_机构, 上课, 课程, 家长, 培训行业, 授课, 高三, 寒暑假, 招生, 教育培训, 教培, 开课, 退费, 转线, 留学, 面试, 教师, 辅导机构, 课时费, 推迟_开学]

Topic 1 [ 8.38 ] :[婚礼, 婚庆, 摄影师, 摄影, 下岗, 物料, 新人, 工作室, 拍摄, 行业_从业者, 布置, 取消_婚礼, 摄像, 主持人, 婚礼_延期, 婚礼_取消, 婚纱, 婚期, 改期, 道具]

Topic 2 [ 7.81 ] : [gdp, 第三产业, 亿元, 一季度, 增速, 第二产业, 百分点, gdp_增速, 中国_gdp, 增长率, 万亿元, 同比, 第一产业, 经济_增速, 高于, gdp_增长, 一季度]

Topic 3 [ 10.70 ] :[超级传播者, 广东, 扩散, 超级, 预防, 传染性, 耽误, 传人, 症状, 发病, 病毒传播, 宿主, 证据, 不幸, 社交, 毒王, 已有, 院士, 传染给, 传播者, 轻微, 定义]

Topic 4 [ 10.75 ] : [世界卫生组织, 公共, 后果, who, 观察, 列为_疫区, 证明, 大国, 认定, 警惕, 事后, 列入, 人群_密集, 交通工具, 突发事件, 视为_疫区, 负面, 各国, 定性]

Topic 5 [ 6.87 ] : [草莓, 一斤, 农民, 大棚, 果农, 成熟, 夏天, 路边, 产地, 草莓_大棚, 请假, 丹东, 柿子, 草莓_价格, 辽宁, 能卖, 季节, 地里, 辛辛苦苦, 忙活, 大棚_草莓]

Topic 6 [ 10.56 ] : [票房, 春节_票房, 大年初一_票房, 影片, 收获, 撤档, 唐探, 电影票, 姜子牙, 暑期, 夺冠, 熊出没, 粉丝, 热门, 观众, 退出, 老实, 囧妈, 院线, 系列, 徐峥]

Topic 7 [ 10.26 ] : [战争, 香港, 恢复正常, 到来, 提醒, 病情, 蔓延, 教育局, 态势, 终止, 教育部, 预案, 各项, 社会秩序, 一律, 课外辅导, 认知, 中东, 机构_停课, 摧毁_房价]

Topic 8 [ 8.71 ] : [高考, 大学, 教育_行业, 注定, 分数线, 毕业, 高校, 就业, 春季, 考研, 考试, 春招, 毕业生, 合适, 延迟_开学, 应届, 秋招, 应届生, 考生, 复试, 申请, 难度]

...

Random Generated Sentences ========================== Temperature = 1.2

Topic 8 : 新冠肺疫情逐步好转,许多省份提出将优先安排初3高三返校

Topic 4 : WHO:无证据显示病毒会在夏季消失,欧洲疫情扩散

Topic 3 : 国际在线,外媒分析:病毒“超级传播者”对疫情影响为何如此重大?

Topic 6 : 多国家纷纷叫停电影,海外疫情影响不容乐观

Topic 7 :

....

(9)BERTopic

近期,经常有小伙伴会在知乎后台或者直接通过微信向我咨询以下问题:

  • 如何对大量的短文本数据进行高效建模?
  • 在LDA建模时,如何确定主题数?
  • 主题模型得到的结果解释性程度不高、看不懂咋办?
  • 主题模型对上下文语境捕捉能力不足咋办?

在没有任何类别或标签的情况下,利用无监督技术来提取文档主题是一个自然而然的想法,虽然LDA和NMF等主题模型已经被广泛采用,而且在大多时候效果还不错(主要是长文本),但是,笔者总觉得通过超参数调优来发掘有意义的话题需要花费相当大的精力,而且很多时候吃力不讨好---出来的结果奇差无比,上面的几个问题也印证了这一点。鉴于此,笔者想结合时下SOA的BERT---因为它在近两年的各种NLP任务中表现优异,而且使用预训练模型不需要有标注的数据,更重要的是BERT可以产生出高质量的、带有上下文语境信息的词嵌入和句嵌入。

BERTopic是一种话题建模技术,它利用BERT嵌入和c-TF-IDF来创建密集的集群,使话题易于解释,同时在话题描述中保留重要词汇。其核心步骤主要是做三件事:

  • 用基于BERT的Sentence Transformers提取语句嵌入
  • 通过UMAP和HDBSCAN,将文档嵌入进行聚类,语义相近的语句将聚集成簇群
  • 用c-TF-IDF提取主题词

另外,如果你不想在整个文档上应用主题建模,而是想在段落层面上应用,笔者则建议您在创建语句嵌入之前将数据进行一定程度的拆分。最后,笔者想说的是,决定聚类效果好坏的关键因素在于Sentence Transformers提取语句嵌入这一环节,要想达到较好的效果,需要自行针对任务训练预训练模型,这是另一个大的话题,笔者有过这样的实践,后续可以单独写一篇文章来说明。

       Most 20 Important words in TOPIC 0 :  [('马儿', 0.24457507362737524),  ('马儿跑', 0.2084888573356569),  ('不吃', 0.09709590737397493),  ('油耗', 0.06709136386307156),  ('目前', 0.059650379616285276),  ('不让', 0.05319169690659243),  ('想要', 0.04764441180247841),  ('左右', 0.046580524081679016),  ('跑得快', 0.045400507911056986),  ('哪有', 0.044559365280351336),  ('公里', 0.041230968367632854),  ('高速', 0.039234425817170064),  ('行驶', 0.03890482349013843),  ('10', 0.037022144019066686),  ('个油', 0.03682216481709768),  ('动力', 0.03616975159734934),  ('正常', 0.03520558703001095),  ('市区', 0.034599821025087185),  ('毕竟', 0.03458202416009574),  ('道理', 0.031503940772350914)] '************************************************************' Most 20 Important words in TOPIC 1 :  [('油耗', 0.09524385306084004),  ('高速', 0.05653143388720487),  ('左右', 0.05463694726066372),  ('市区', 0.04736812727722961),  ('公里', 0.04426042823825784),  ('个油', 0.0437019462752025),  ('10', 0.04124126267133629),  ('目前', 0.04106957747526032),  ('接受', 0.03392843290427474),  ('11', 0.03258066460138708),  ('平均', 0.03254166004110595),  ('百公里', 0.026974405367215754),  ('12', 0.02667734417832382),  ('现在', 0.026547861579869568),  ('省油', 0.024521146178990254),  ('比较', 0.023967370074638887),  ('行驶', 0.02337617146923143),  ('平时', 0.02231213384456322),  ('开车', 0.02225259142975045),  ('磨合期', 0.019891589132560176)] '************************************************************' Most 20 Important words in TOPIC 2 :  [('老虎', 0.1972807028214997),  ('油耗', 0.08030819950496665),  ('美系车', 0.051452721555236586),  ('现在', 0.04511691339526969),  ('10', 0.04164581302410513),  ('个油', 0.041420858563077104),  ('美国', 0.04121728175026878),  ('左右', 0.03493195487672415),  ('平均', 0.03288881578728298),  ('目前', 0.029076698183196633),  ('12', 0.028824764053369055),  ('高速', 0.028687350320703176),  ('11', 0.0263147428710808),  ('基本', 0.025791405022289656),  ('百公里', 0.025566436389413978),  ('驾驶', 0.02511085197343242),  ('郊区', 0.023879719505057788),  ('多公里', 0.023290821021098026),  ('习惯', 0.023170932368572476),  ('朋友', 0.022668297504425915)] '************************************************************' Most 20 Important words in TOPIC 3 :  [('油耗', 0.09774756730680972),  ('凯迪拉克', 0.08150929317053307),  ('左右', 0.03704063760365755),  ('个油', 0.03393914525278086),  ('节油', 0.033147790968701116),  ('目前', 0.029322670672030947),  ('耗油', 0.028607158460688595),  ('市区', 0.028138942560105483),  ('11', 0.027057690984927343),  ('接受', 0.027035026157737122),  ('毕竟', 0.025713800165879153),  ('现在', 0.025636969123009515),  ('美系车', 0.025507957831906663),  ('平均', 0.02536302802175033),  ('之前', 0.024645241362404695),  ('动力', 0.023532574041308225),  ('比较', 0.02351138127209341),  ('降低', 0.021912206107234797),  ('正常', 0.02137825605852441),  ('可能', 0.02017083805610775)] '************************************************************'     

...

       Most 20 Important words in TOPIC 31 :  [('满意', 0.4749794864152499),  ('地方', 0.3926757136985932),  ('没有', 0.21437689162047083),  ('发现', 0.17910831839903818),  ('目前', 0.11420499815982257),  ('暂时', 0.09540746799339411),  ('挖掘', 0.08502606632538356),  ('不好', 0.06606868576085345),  ('满满', 0.06546918040522966),  ('挑剔', 0.06351786367717983),  ('后续', 0.05924768082325757),  ('其实', 0.05517858296374464),  ('没什么', 0.0467681518553301),  ('真的', 0.04629681210390699),  ('癫得', 0.04599618482379703),  ('我太多', 0.04599618482379703),  ('定为', 0.04599618482379703),  ('3w', 0.04599618482379703),  ('能吐槽', 0.04599618482379703),  ('相对', 0.045510230820616476)] '************************************************************' Most 20 Important words in TOPIC 32 :  [('外观', 0.19202697740762065),  ('喜欢', 0.09742663275691509),  ('好看', 0.06539925997592003),  ('吸引', 0.051963718413741596),  ('时尚', 0.04628469650846298),  ('大气', 0.045441921472445655),  ('个性', 0.0447603686071089),  ('个人', 0.03601467530065024),  ('反正', 0.03586746904278288),  ('霸气', 0.03438681357345092),  ('不用', 0.03315500048740606),  ('漂亮', 0.03302680521368137),  ('外观设计', 0.032328941456855734),  ('非常', 0.032326600304463396),  ('外形', 0.03215438082478295),  ('觉得', 0.03126961228563091),  ('不错', 0.029505153223353325),  ('看起来', 0.02949619921569243),  ('顺眼', 0.026753843592622728),  ('帅气', 0.026252936525869065)] '************************************************************'     

(10)Image-Text Mix Topic Model

之前和近段时间,在做售前直接面向客户的时候,有些客户会问到,你们文本处理很在行,但文本只是网络大数据的一部分,图片(包括视频)在网络上的比重越来越高,能否和文本一并做分析呢?比如打标签(图文采用的标签是一套体系)、做热门话题发现(图文混合),以及图文混合检索(以图搜文、以文搜图等)。很明显,这是一个多模态数据分析问题。

针对这个图文数据分析的问题,笔者近期做了一定的探索,现分享一下成果~一言以蔽之,要想实现上述需求,只需将把图像和文本都放入一个新的语义空间(Latent Semantic Space),这样文本和图像数据在不断训练的过程中就能“对齐”,然后使用对比学习的方法学习到图文之间的语义关联性,即分别对图像和文本编码(文本是一整句话而不是标签,比如“一群小孩在滑滑梯上玩耍”),然后两两计算cosine相似度,再针对每个图片的一行或文本的一列进行分类,找出匹配的正例。原理如下图所示:

纯理论的笔者就不展开了,详细的可以参看原汁原味的blog(openai.com/blog/clip/)或者论文(arxiv.org/abs/2103.0002)。笔者发现,现在外网开源的只有针对英文或其他西文的模型,中文的还没有。基于此,笔者搜罗了近200万图文数据对,但笔者的数据量和计算资源极其匮乏,所以就想到利用LiT-tuning训练一个clip范式的模型:

LiT-tuning最近提出了一种图文微调范式 LiT-tuning(Locked-image Text tuning),该范式表明权重固定的图像编码器和可学习的文本编码器在 VLP模型中效果最好。他们在对比学习设置中也采用了同样的方式,即只更新文本编码器的权重,而不更新图像编码器的权重。

具体而言,LiT-tuning方法旨在教一个中文的文本编码器从一个现有的图像编码器中读取合适的表示,该图像编码器是在英文数据集上预训练过。还为每个编码器添加了一个可选的可学习线性变换层,它将两种模式的表示映射到相同的维度。LiT-tuning 之所以效果很好,是因为它解耦了用于学习图像特征和视觉语言对齐的数据源和技术。并且,图像描述器事先使用相对干净或(半)手动标注的图像进行了良好的预训练。

将这一想法扩展到多语言数据源,并尝试将在英文数据源上预训练的固定了的图像编码器和可训练的中文文本编码器对齐。此外,LiT-tuning 方法显著加快了训练过程并减少了内存需求,因为它不需要为视觉编码器计算梯度。

笔者在colab上陆陆续续(colab上对长时间使用有限制,搞不好什么时候断掉了...)训练了近3 epoch,现展示下效果~

测试一:图文匹配

笔者构造了20+关于草地、草坪、草原的描述,以及6个相关的图片,旨在测试模型对场景和描述更为细微的语义差异捕捉能力。

图文主题混合发掘

笔者基于Unsplash 25K开源数据集(25000+张高质量摄影图片),再加上朱自清的散文集,对二者进行图文主题混合发掘/聚类。

基于模型自动识别,排除噪音类别外,一共是252个主题。

图文混合主题会将语义/话题接近的图文自动聚合在一起:可以以文搜图:

上述内容在鄙喵的公众号上有更为完整的展示,可以感兴趣的可以搜索Social Listening与文本挖掘详细查看。

PS:主题模型就是一把大杀器,用的好不好全看个人,跟它自身没啥关系~

我之前写的几篇文章,上面的部分示例出自这里:

【CODE】LDA2vec : 当LDA遇上word2vec

以上。

类似的话题

  • 回答
    主题模型(Topic Model):还在“有用”吗?如何“用”?曾几何时,主题模型(Topic Model),尤其是LDA(Latent Dirichlet Allocation),在文本挖掘领域可谓是风光无限。它承诺着一种“读懂”大量文本、从中发现隐藏主题的魔法,让那些看似杂乱无章的文字,瞬间变得.............
  • 回答
    你想了解中医的那些“秘籍”是怎么运作的?其实它没那么玄乎,就像一套非常古老但依然好用的“身体说明书”。我们平时看病,医生会问你哪儿疼、吃得怎么样、睡得好不好,然后给你开药。中医也差不多,但它更喜欢把身体看作一个整体,而且用一套独特的语言来描述这个整体和它出现问题的原因。核心思想:阴阳、五行、气血津液.............
  • 回答
    我们身边似乎总有这样的例子:男的年纪比女的大个几岁,甚至十来岁。这种“男大女小”的婚姻模式,说实话,放眼咱们周围,好像是挺常见的。但为什么会这样呢?这背后可不是一件简单的事情,掺和着历史、文化、生物,还有很多现实的考量。咱们先从最根子上的说起,从过去说。在咱们的祖辈们生活的年代,社会结构跟现在可不一.............
  • 回答
    关于乐队模式是否过时,以及独立电子音乐制作是否代表未来主流,这是一个很有意思的讨论点,涉及到音乐产业的演变、技术发展以及听众喜好的变迁。要详细聊这个话题,咱们得从几个层面来看。乐队模式:非但不过时,还在经历蜕变首先,说乐队模式“过时”,我觉得有点武断。乐队,作为一个核心创作和表演单元,它的生命力依然.............
  • 回答
    .......
  • 回答
    哥们儿,玩CS:GO竞技模式,想知道现在的主战枪是啥?别急,咱这就给你掰扯清楚,让你心里有底。首先得明白,CS:GO这游戏,枪械的定位和好坏,很大程度上取决于你玩的地图、你扮演的角色(CT还是T),以及你团队的战术配合。但要说“主战枪”,那绝对是那些最常用、最能左右战局的家伙。先说咱们的“老伙计”—.............
  • 回答
    中国社会涌现了许多有影响力的非政府组织(NGO),它们在不同领域为社会发展贡献力量。下面介绍几个在国内颇具知名度的NGO,并深入探讨它们的运营模式。1. 腾讯公益慈善基金会 (Tencent Charity Foundation) 领域: 扶贫济困、医疗健康、教育助学、环保、文化传承等多个领域。.............
  • 回答
    说起音频解码器,也就是DAC(DigitaltoAnalog Converter)模块,这玩意儿在音响器材里可真是个核心部件。它就像一个音乐的翻译官,把数字信号变成我们耳朵能听懂的模拟信号。那么,市面上这么多音频厂商推出的DAC产品,它们之间的差距到底有多大呢?这问题可就有点意思了,咱们掰开了揉碎了.............
  • 回答
    关于这个令人心痛的悲剧,我们可以从几个层面来深入探讨。首先,一个年轻的生命,因为一次尝试模仿短视频中的生活技能而陨落,这本身就是一件极其令人惋惜的事情。办公室小野的视频,在很多观众看来,是一种创意、一种对生活的热情和对日常的别样解读。她的视频内容往往包含一些充满想象力的“脑洞”,比如在办公室用各种奇.............
  • 回答
    Xbox One 长时间待机,究竟会不会伤机器?这是一个不少玩家都关心的问题。毕竟,有时候我们只是想让它随时 ready 状态,不需要每次都从头开机,那份便捷确实难以割舍。那我们就来聊聊这个话题,尽量说得透彻些。首先,要明白 Xbox One 的“待机模式”是怎么一回事。它不像彻底关机那样断绝所有电.............
  • 回答
    哇,问到这个,我脑子里瞬间闪过好几个熟悉的面孔,但如果非要选一个“最喜欢的”,那还真得好好琢磨琢磨。毕竟,模联主席这个角色,真的能直接影响一场会议的氛围、效率,甚至参会者的体验。要说我心目中的“最佳主席”,那还得是那位给我留下最深刻印象的,姑且称呼他为“Alex”吧(为了保护隐私,我稍作处理)。认识.............
  • 回答
    .......
  • 回答
    这个问题非常核心,也涉及到游戏产业的商业模式演变。虽然游戏主机本身的利润率可能不高,但索尼(以及其他主机厂商如微软、任天堂)之所以大力推行独占模式卖主机,背后有着一套非常精妙且环环相扣的商业战略。简单来说,卖主机不是终点,而是获取长期、稳定、高利润生态系统入口的手段。下面我将详细阐述索尼推行独占模式.............
  • 回答
    当然可以!在模拟联合国(MUN)中,主席扮演着至关重要的角色,他们是会议流程的引导者、规则的维护者,也是参与者体验的关键塑造者。因此,对主席的表现进行KPI(关键绩效指标)考核,不仅能促使主席更尽责地履行职责,也能帮助会议组织方评估和优化主持团队的整体水平。下面我将详细阐述如何在模联中对主席进行KP.............
  • 回答
    要模仿《诡秘之主》的文笔,这可不是件易事,毕竟作者爱潜水先生的风格独树一帜,融合了克苏鲁的压抑、维多利亚时代的神秘、蒸汽朋克的奇幻,还有浓厚的东方玄幻色彩。但这并不意味着无法触及。要模仿,关键在于抓住其核心的几个方面,然后像海绵一样去吸收和内化,最后再用自己的方式表达出来。一、 核心要素剖析与模仿策.............
  • 回答
    .......
  • 回答
    叶海宏?哦,那个用游戏推演军事战略的模联老兄,我认识。评价他这个人,得从几个层面来看,毕竟他这套玩法在模联圈子里算是比较“出挑”的了。首先,从“创新性”和“吸引力”的角度说,这小子绝对是把好手。你可以想象一下,大多数模联的推演,要么是照搬历史事件,要么是基于现实国际局势的线性发展。这都没错,也很严谨.............
  • 回答
    咱就聊聊这个事儿,1080p在笔记本上为啥这么普及,甚至还有点“模糊”的感觉,却依然没被淘汰。这事儿吧,得从几个方面掰开了说,里面门道可不少。首先,别把“模糊”这个词太绝对化。你觉得1080p模糊,可能是跟你平常接触的手机、平板,甚至某些高刷显示器对比出来的。那些设备屏幕尺寸小,像素密度(PPI)就.............
  • 回答
    关于161107模拟联合国贴吧吧主被撤一事,这在模拟联合国(MUN)爱好者圈子里引起了不少讨论和关注。要评价这件事,我们需要从多个角度来审视,包括事件本身、涉及的各方、以及它可能带来的影响。事件的背景与经过(据公开信息推测):首先,我们需要明白,在贴吧这样的平台,吧主的权限非常高,他们是贴吧的管理者.............
  • 回答
    当咱们聊到操作系统内核,其实就是在说它最核心的那部分,负责管理计算机的硬件资源,并且为上层应用提供服务。这其中,文件系统作为一个极其重要且基础的功能,它的实现方式就直接影响着整个操作系统的效率、稳定性和设计理念。简单来说,文件系统在内核的实现方式主要分为两大派别:宏内核(Monolithic Ker.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有