十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

新闻五要素提取以及计算新闻相似度

新闻五要素提取以及计算新闻相似度 正则表达式是按照固定文本格式和模式去找文本。因为像时间这种字符串是很有规律的除了数字不同。比如某年某月某日、某日某时、某时某分。规则非常清楚不需要模型去猜所以正则更快也更稳定。当然用BERT解决也可以但没必要。从而可以把具体时间表达式找出来。BERT-NER是判断某句话中的某段文字是什么样类型。比如张三在北京参加会议张三-person\北京-location。BERT一个预训练语言模型是根据上下文理解每个词含义的Transformer语言模型。比如苹果公司今天发布了一台新手机、我今天吃了一个苹果。同样都出现了苹果但苹果的具体含义不一样一个表示组织一个表示水果。这也是BERT相比于单纯的字典匹配能力强的地方。NER是自然语言处理的一个任务不是模型先将文本用tokenizer进行分词然后经过BERT\Transformer语言模型使每个token获得一个上下文向量再用分类器分类最后在拼接合并。把这一过程打包成流水线就是NER。本质上就是给句子中的每个字打标签。为什么地点人物要用BERT-NER呢这是地点和人物不像时间那样有固定格式世界上的地点人物太多了如何用字典字典里有的能识别到没有的就识别不到。而NER可以结合上下文进行泛化。在代码里用到了“NER正则表达式”用模型提取地点人物不会那么全面所以再用正则进行兜底。实体标签统一因为不同NER模型输出的标签可能不同如果后续用这些原始标签会很麻烦这也就解决了不同模型接口不统一的问题。jieba分词解决中文分词问题。先用jieba进行分词这里并不是关键词然后再用SBERT从这些候选词中挑选出最重要的。为什么不用KeyBERT进行分词呢KeyBERT适合英文这种以空格形成边界的文本。注意不要直接说“KeyBERT适用于英文jieba适用于中文”。因为 KeyBERT 是一个完整的关键词抽取方法而 jieba 主要是中文分词工具两者并不是完全同一级别的东西。更严谨的说法是KeyBERT默认的候选词生成机制对英文更自然而我们针对中文候选词生成使用了 jieba。词性标注POS分词之后再进行词性标注。通常情况下新闻关键词更可能是名词、专有名词、人名、地名和核心动作等。同时也要解决掉无意义的stopword比如的、了、是、和出现频率高但不能作为新闻主题。即使这样提取出来的高频词也未必是关键词像一些企业、项目、国家这种词像一种套话区分度很低也需要过滤掉。总之要解决的是新闻当中的泛化词、套话和低区分度的词。SBERT普通BERT适合token分类、文本分类、NER。但如何目标变成“两个句子的相似度有多像”普通的BERT不够方便。因此又有了Sentence-BERT,专门把一句话压缩成一个固定长度的语义向量。Embedding把文字转成一串能够表达语义的数字。就是一段文本经过SBERT变成一个固定维度的句向量。不需要关心转变后的向量中数字是什么意思但应该知道语义相似的文字其向量在向量空间中通常是接近的。比如台风登陆广东热力气涡袭击广东沿海。字面上来看差异较大但语义相近。问题为什么关键词抽取要用SBERT原因是因为jieba进行分词后只看词频并不能判断哪些词能够代表全文。 所以将全文文本以及候选词都进行Embedding,计算每个候选词与全文的相似度。余弦相似度度计算语义接近程度。将结果由高到低排列结果越大越相似越小越不相关。通过相似度计算得出上述情况从前4名可以看出在描述一件事情也就是关键词重复了针对上述问题用MMR多样化思想解决。MMR解决关键词重复问题。SBERT主题句选择跟关键词提取很相似相当于把关键词换成了句子正常思维是将句子转换成固定维度的句子向量一般情况下新闻是倒金字塔结构重要信息出现在开头所以将第一句作为中心句然后计算每一句和中心句的余弦相似度选出最高的作为主题句。通过思考会发现这里并没有真正实现“从正文中寻找最能代表主题的句子”更多是在把第一句再次选出来这并没有真正选出来主题句。换一种方法我们可以把所有句向量的平均向量作为中心然后再找最接近中心的句子。SBERT 的工作就是把每句话变成向量中心向量不是 SBERT 直接输出的而是我们拿 SBERT 输出的多个句向量再人为做平均计算出来的。思维导图
返回列表