首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python识别连续句子中的主题转换?

如何使用Python识别连续句子中的主题转换?
EN

Data Science用户
提问于 2020-04-28 12:42:59
回答 1查看 259关注 0票数 0

我对数据挖掘很陌生。我想检测连续句子之间的主题转换。例如,我有一个段落(这可能是几十个句子的集合,有时没有过渡词)如下:

因为我真的很喜欢米老鼠,所以我跳着去佛罗里达。但我爸爸带我去了内华达州。很明显,米老鼠不在那里。但是,我和其他孩子一起参加了一个夏令营。而且,我真的很享受,从我的营地学到了很多东西。

在这里,我想自动地将其分成以下几个子解释:

  1. 因为我真的很喜欢米老鼠,所以我跳着去佛罗里达。但我爸爸带我去了内华达州。很明显,米老鼠不在那里。
  2. 但是,我和其他孩子一起参加了一个夏令营。而且,我真的很享受,从我的营地学到了很多东西。

据我所知,这不是句子相似性的度量。这里应该使用什么技巧?任何使用python或tensorflow模型的例子都将受到极大的赞赏。

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-04-28 14:02:29

一种解决办法是:

  1. 从FastText获取句子嵌入
  2. 计算连续句子之间的欧氏距离
  3. 如果连续句子之间的距离接近1,那么,你可以说这两个句子谈论的是不同的主题。

参见这里如何计算英语语言的句子嵌入:https://github.com/facebookresearch/fastText/blob/5b5943c118b0ec5fb9cd8d20587de2b2d3966dfe/python/fasttext_模块/快速文本/FastText.py#L 127

代码语言:javascript
复制
fasttext.util.download_model('en', if_exists='ignore')  # English
ft = fasttext.load_model('cc.en.300.bin')
fasttext.util.reduce_model(ft, 20)
def get_fasttext_sentence_embedding(sentence, ft):
    if pd.isna(sentence):
        return np.zeros(20)
    return ft.get_sentence_vector(sentence)

然后,计算连续句的快速文本嵌入之间的欧几里德距离。

使用LDA (主题模型)也可以这样做,但是,这需要大量的文本来建模主题。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/73151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档