NLP关键词权重算法总结Python实现(超级全,持续更)

词权重 (term weight)方案总结 目录1 无监督 (unsupervised) 方法1.1 统计方法(TF, TF-IDF, YAKE)1.2 图方法 (TextRank, SingleRank, TopicRank, PositionRank)2 有监督 (supervised ) 方法2.1 Delta TF-IDF2.2 TF-IDF-ICF2.3 TF-RF2.4 TF-IGM3 语义学习方法3.1 基于关键词学习3.2 基于文本分类3.3 基于检索语义向量匹配4 文本分计算4.1 BM254.2 结合term weight 1 无 阅读详情

词频

语言材料中词的使用频率
在新词发现、热词发现等场景,词频越高,权重越高。
词频统计可以按 句子级、 段落级、 篇章级等
篇章级,词在整篇文章中,没出现算零次,出现了算一次
句子级,词在整个句子中,没出现算零次,出现了算一次
最细级,出现多少次就算多少次

TFIDF

TF(Term Frequency):词频
T F = 该 词 频 数 文 档 词 语 总 数 TF = \frac{该词频数}{文档词语总数} TF=文档词语总数该词频数​

IDF(Inverse Document Frequency):逆文本频率指数
I D F = log ⁡ ( 文 档 总 数 出 现 该 词 文 档 数 + 1 ) IDF = \log(\frac{文档总数}{出现该词文档数+1}) IDF=log(出现该词文档数+1文档总数​)

TFIDF缺点

  1. 文档类型单一时,IDF将失去意义。例如,语料都是汽车主题,理应获得更高权重的汽车相关术语的IDF反而不高
  2. 在具有时效性的文本中,网络热词会阶段性频繁出现,这些热词理应要有较高权重,但阶段性IDF赋予的权重反而较低。
from collections import Counter
from math import log10
from re import split
from jieba.posseg import dt
FLAGS = set('a an b f i j l n nr nrfg nrt ns nt nz s t v vi vn z eng'.split())

def cut(text):
    for sentence in split('[^a-zA-Z0-9\u4e00-\u9fa5]+', text.strip()):
        for w in dt.cut(sentence):
            if len(w.word) > 1 and w.flag in FLAGS:
                yield w.word

class TFIDF:
    def __init__(self):
        self.idf = None
        self.idf_max = None

    def fit(self, texts):
        texts = [set(cut(text)) for text in texts]
        lent = len(texts)
        words = set(w for t in texts for w in t)
        self.idf = {w: log10(lent/(sum((w in t)for t in texts)+1)) for w in words}
        self.idf_max = log10(lent)
        return self

    def get_idf(self, word):
        return self.idf.get(word, self.idf_max)

    def extract(self, text, top_n=10):
        counter = Counter()
        for w in cut(text):
            counter[w] += self.get_idf(w)
        return [i[0] for i in counter.most_common(top_n)]

tfidf = TFIDF().fit(['奶茶', '巧克力奶茶', '巧克力酸奶', '巧克力', '巧克力']*2)
print(tfidf.extract('酸奶巧克力奶茶'))

词在文中位置

下面提供两种位置权重

粗粒度

词语位置权重
标题10
标题尾词20
首句4
末句3
首段3
末段2
其它1

细粒度

"""https://blog.youkuaiyun.com/Yellow_python/article/details/104580509"""
from sklearn.gaussian_process import GaussianProcessRegressor
from jieba import lcut

X = [[0], [.1], [.2], [.3], [.4], [.5], [.6], [.7], [.8], [.9], [1]]
Y = [[1], [.2], [.04], [.02], [.01], [0], [0], [.01], [.03], [.1], [.5]]

class GPR:
    """高斯过程回归"""
    def __init__(self):
        self.model = GaussianProcessRegressor()
        self.model.fit(X, Y)

    def predict(self, position):
        return self.model.predict([[position]])[0]

    def extract(self, text, judge):
        words = lcut(text)
        le = len(words) - 1
        entities = [(self.predict(i/le)[0], words[i]) for i in range(le+1) if judge(words[i])]
        return entities

def visualization():
    from matplotlib import pyplot as mp
    w = [[i / 500] for i in range(501)]
    z = GPR().model.predict(w)
    mp.scatter(X, Y, s=66, color='g')
    mp.scatter(w, z, s=6, color='r')
    mp.show()

"""实体抽取并返回权重"""
print(GPR().extract('剑圣联合守望者斩杀大法师', lambda x: x in {'剑圣', '大法师', '守望者'}))
"""权重分布可视化"""
visualization()

示例句子:剑圣联合守望者斩杀大法师

词语位置位置百分比权重
剑圣00%1.00
守望者250%0.00
大法师4100%0.50

文章总长度

文章越长,单个词对文章的贡献值越低。下面提供几个公式:

词长

下面提供两种词长权重

词长度12345678910
权 重 = 1 − 1 词 长 权重 = 1 - \frac{1}{词长} 权重=1−词长1​0.000.500.670.750.800.830.860.880.890.90
权 重 = 词 长 权重 = \sqrt{词长} 权重=词长 ​11.4141.73222.2362.4492.6462.82833.162

词跨度

词频=1时,权重=1;
词频>1时,下面提供两种词跨度权重

简单版
权 重 = 1 + 尾 词 位 置 − 首 词 位 置 总 长 权重 = 1 + \frac{尾词位置 - 首词位置}{总长} 权重=1+总长尾词位置−首词位置​

复杂版
权 重 = ∏ i = 1 n − 1 ( 1 + 词 位 置 i + 1 − 词 位 置 i 总 长 ) 权重 = \prod^{n-1}_{i=1} (1 + \frac{词位置_{i+1} - 词位置_i}{总长}) 权重=∏i=1n−1​(1+总长词位置i+1​−词位置i​​)

def span1(text):
    """词跨度 + 词频"""
    words = list(text)  # 分词并返回列表,此处暂时用list
    reversed_words = words[::-1]
    le = len(words)
    return {w: 2-((words.index(w)+reversed_words.index(w)+1)/le) for w in set(words)}

def span2(text):
    c, position = dict(), dict()
    words = list(text)  # 分词并返回列表,此处暂时用list
    length = len(words)
    for i in range(length):
        word = words[i]
        if word not in c:
            c[word] = 1
        else:
            c[word] *= 1 + ((i - position[word]) / length)
        position[word] = i
    return c

_text = '清水水水水水水水里清'
print(span1(_text))
print(span2(_text))

句子示例:清水水水水水水水里清

词语简单版权重复杂版权重
清1.91.9
水1.61.771561
里11

词性

通常,实词>虚词,名词权重较高。
对于如何设定权重值,我们可以找些标注数据来建立一个词性权重模型。

词与主题的关系

给予主题相关的词更高的权重

例如,文中【车主打开车盖,用苹果照了一下水箱】句子属于【汽车主题】,同为名词的【水箱】权重要比【苹果】高。

from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import TfidfVectorizer
from re import split
from jieba import cut
from collections import Counter
from numpy import argmax
from pandas import DataFrame

def segment(text):
    for phrase in split('[^a-zA-Z\u4e00-\u9fa5]+', text.strip()):
        for word in cut(phrase):
            yield word

def clf_word(texts, labels, clf=MultinomialNB()):
    """词分类,逻辑回归,存EXCEL"""
    # 向量化
    vectorizer = TfidfVectorizer(tokenizer=segment)
    x = vectorizer.fit_transform(texts)
    # 建模
    clf.fit(x, labels)
    classes = clf.classes_
    print(clf.__class__.__name__, clf.score(x, labels), *classes)
    # 词分类
    c = Counter(w for t in texts for w in segment(t)).most_common()
    ls = []
    for word, freq in c:
        predict_proba = clf.predict_proba(vectorizer.transform([word]))[0]  # 概率
        label = classes[argmax(predict_proba)]  # 类别
        ls.append([freq, word, label, *predict_proba])
    df = DataFrame(ls, columns=['freq', 'word', 'label', *classes])
    df.to_excel('a.xlsx', index=False)  # 存excel

if __name__ == '__main__':
    from data9 import X, Y  # 导入新闻9分类语料
    clf_word(X, Y)

否定句

在特定否定语境中,关键词权重要变零

例句:大力发展智能冰箱、智能空调、智能热水器等高新技术(不含智能手机和智能电视)
抽出实体及其权重:【智能冰箱:2】【智能空调:2】【智能热水器:2】【智能手机:-1】【智能电视:-1】

{'不包含': -1, '不包括': -1, '不含': -1, '除外': -1, '包含': 1, '包括': 1}
re.compile(r'(?<![无没])不[^a-zA-Z\W\d_限无没]|除外')

自然衰减权重

  • 出现某些特定词时,特定词后(可能跨句甚至跨段)的单词权重提高,并自然衰减

以下情况不列入支持
1、XXXXXXXX
2、XXXXXXXX

申请人条件如下:
1、XXXXXXXX
2、XXXXXXXX

from matplotlib import pyplot as mp
# 特定词
x2y = {'b': 20, 'c': 10, 'd': 30}
# 造数据
length = 100
x = ['a'] * length
x[15], x[30], x[75] = 'b', 'c', 'd'
# 计算权重
y = [0] * length
for i in range(length):
    if x[i] in x2y:
        weight = x2y[x[i]]
        for j in range(i + 1, length):
            y[j] += max(0, weight - abs(i - j))
mp.plot(y)
mp.show()

TextRank

from collections import defaultdict
from jieba.posseg import dt

ALLOW_POS = frozenset(('ns', 'n', 'vn', 'v'))


class WeightedUndigraph:
    d = 0.85

    def __init__(self):
        self.graph = defaultdict(list)

    def add_edge(self, start, end, weight):
        self.graph[start].append((start, end, weight))
        self.graph[end].append((end, start, weight))

    def rank(self):
        ws = defaultdict(float)
        outSum = defaultdict(float)

        wsdef = 1.0 / (len(self.graph) or 1.0)
        for n, out in self.graph.items():
            ws[n] = wsdef
            outSum[n] = sum((e[2] for e in out), 0.0)

        for x in range(10):  # 10次迭代
            for n in sorted(self.graph.keys()):  # 排序更稳定
                s = 0
                for e in self.graph[n]:
                    s += e[2] / outSum[e[1]] * ws[e[1]]
                ws[n] = (1 - self.d) + self.d * s

        min_rank, max_rank = min(ws.values()), max(ws.values())
        for n, w in ws.items():
            ws[n] = (w - min_rank / 10.0) / (max_rank - min_rank / 10.0)  # 统一权重,无需乘以100
        return ws


class TextRank:
    def __init__(self):
        self.tokenizer = dt
        self.allow_pos = ALLOW_POS
        self.span = 5

    def flag_filter(self, wp):
        return (wp.flag in self.allow_pos) and (len(wp.word.strip()) >= 2)

    def text_rank(self, sentence, n=20, with_weight=False, allow_pos=ALLOW_POS, with_flag=False):
        """
        Parameter:
            - n: 返回关键词数量
            - with_weight: 是否返回权重
            - allow_pos: 允许的词性
            - with_flag: 是否返回词性
        """
        self.allow_pos = frozenset(allow_pos)
        g = WeightedUndigraph()
        cm = defaultdict(int)
        words = tuple(self.tokenizer.cut(sentence))
        for i, wp in enumerate(words):
            if self.flag_filter(wp):
                for j in range(i + 1, i + self.span):
                    if j >= len(words):
                        break
                    if not self.flag_filter(words[j]):
                        continue
                    if allow_pos and with_flag:
                        cm[(wp, words[j])] += 1
                    else:
                        cm[(wp.word, words[j].word)] += 1
        for terms, w in cm.items():
            g.add_edge(terms[0], terms[1], w)
        nodes_rank = g.rank()
        if with_weight:
            tags = sorted(nodes_rank.items(), key=lambda x: x[1], reverse=True)
        else:
            tags = sorted(nodes_rank, key=nodes_rank.__getitem__, reverse=True)
        return tags[:n] if n else tags


_t = '越来越多的国产汽车出现在大众的眼中,国产汽车的整体性能也在不断优化,但和老牌的欧美汽车相比还存在着一定的差距'
print(TextRank().text_rank(_t, with_weight=True, with_flag=True))

内联权重

聚类排除离群点

待开发

上下文特征向量

待开发

最尾补充一些失败实验

失败1:
尝试用词向量分布的离散程度来计算权重但失败,结果如下:
高频词向量[5 5 5 5 5 5 0 -5 -5 -5]离散程度高
中频词向量[4 3 3 3 3 3 0 -3 -3 -3]离散程度中
低频词向量[3 1 1 1 1 1 0 -1 -1 -1]离散程度低

from re import split, fullmatch
from gensim.models import Word2Vec
from jieba import cut
from numpy import var
from pandas import DataFrame

def lcut(text):
    return [w for s in split('[\n。…;;!!??]+', text)for w in cut(s)if fullmatch('[a-zA-Z\u4e00-\u9fa5]+', w)]

def word2vector(texts):
    """词向量建模"""
    sentences = [lcut(t) for t in texts]
    wv = Word2Vec(sentences, size=75, window=10, sg=1).wv
    DataFrame([(w, var(wv[w]), *wv[w]) for w in wv.index2word], columns=[
        'word', 'weight', *(str(i) for i in range(75))]).to_excel('b.xlsx', index=False)

from data9 import X  # 新闻9分类,不导入标签
word2vector(X)

失败2:
词特征分布的离散程度:特征分布离散程度越高的词,权重应更高。
例如,两个IDF相同的词,第一个词集中分布在某类文档中,第二个词分散在不同类型的文档中,则第一个词的权重理应更高。

尝试用长文切短的主题模型来获取单词的主题分布离散程度,但结果失败,多数单词主题分布匀散,某些停词反而具有更为集中的主题分布。

from gensim import corpora, models
import re, jieba, numpy as np, pandas as pd

def word_lda(texts, num_topics=50):
    # 分词
    words_ls = [[w for w in jieba.cut(s) if re.fullmatch('[a-zA-Z\u4e00-\u9fa5]+', w)]
                for t in texts for s in re.split('[\n。…;;!!??]+', t)]
    # 构造词典
    dictionary = corpora.Dictionary(words_ls)
    # 基于词典,使【词】→【稀疏向量】,并将向量放入列表,形成【稀疏向量集】
    corpus = [dictionary.doc2bow(words) for words in words_ls]
    # lda模型,num_topics设置主题的个数
    lda = models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=num_topics)
    # 主题概率矩阵
    matrix = lda.state.get_lambda()
    matrix = matrix / np.sum(matrix, axis=0)
    # 按照主题概率聚类,并存excel
    pd.DataFrame({
        'word': [dictionary[i] for i in range(len(dictionary))],
        'topic': np.argmax(matrix, axis=0),
        'probability': np.max(matrix, axis=0),
    }).sort_values(by=['topic', 'probability'], ascending=False).to_excel('word_lda.xlsx', index=False)

from data9 import X  # 新闻9分类,不导入标签
word_lda(X)
NLP关键词提取环境搭建:Python虚拟环境与Jupyter内核配置 自然语言处理(NLP)项目常涉及分词、关键词提取、文本表示等任务,而稳定的Python环境是这些任务高效落地的前提。虚拟环境通过隔离项目依赖,避免不同库之间的版本冲突,确保实验可复现、可回滚。在关键词提取场景中,jieba、scikit-learn、transformers等库对numpy等底层包版本敏感,若直接在系统环境混装,极易出现ImportError。结合Jupyter Notebook使用时,还需通过ipykernel将虚拟环境注册为内核,并确认sys.executable指向正确。围绕NLP关键 阅读详情

相关推荐

别再只用Jieba了!用Pyhanlp给你的Python项目加个NLP瑞士军刀(附关键词提取实战)

本文介绍了Pyhanlp作为Python中文NLP的工业级解决方案,对比Jieba展示了其在分词速度、功能范围和工业应用上的优势。通过实战案例详细解析了Pyhanlp的核心功能,包括智能关键词提取、依存句法分析和语义角色标注,并提供了性能优化与生产环境部署的实用技巧。

weixin_30231327的博客 314

文本特征选择的关键算法总结

一、特征词选择与特征词权重关系   开始学文本分类的时候经常要搞晕特征词选择和特征词权重 这两个东西,因为两者都要进行量化,很容易认为特征词选择就是计算权重,因此我认为有必要先搞清楚这两个概念。 两者的区别 :特征词选择是为了降低文本表示的维度,而特征词权重是为了表示文本表示中每一个特征项的重要程度。 特征词的选择算法 有:文本特征选择的算法有基

panjiao119的博客 966

Python中文NLP实战:30分钟跑通文本清洗到关键词提取

自然语言处理(NLP)是让计算机理解人类语言的基础技术,其核心在于将非结构化文本转化为可计算的数值特征。原理上依赖文本预处理、特征工程与轻量建模三步闭环,关键技术价值在于快速响应业务需求——无需深度学习框架,也能从客服对话、电商评论等真实语料中提取高解释性洞察。典型应用场景包括用户反馈分析、竞品口碑监控和政策文件关键词挖掘。本文聚焦Python生态下中文NLP的工程落地,突出文本清洗与TF-IDF特征工程两大实操关键点,提供零GPU、免BERT、离线友好的端到端解决方案。

weixin_30245867的博客 438

nlp任务中词的权重计算

它是对文档频率的倒数,文档频率指包含某个词的文档数目。TF-IDF(Term Frequency-Inverse Document Frequency): TF-IDF 是将词频和逆文档频率结合起来计算词的权重,用于衡量一个词在文本中的重要程度。这些方法仅是词权重计算的一部分,还有其他方法如基于词共现矩阵的方法、词嵌入(Word Embedding)等也可以用于计算词权重。计算文本中词的权重是自然语言处理中的一个常见任务,可以根据不同的应用场景和需求使用不同的权重计算方法。

m0_74184968的博客 663

自然语言如何重构SEO:从关键词匹配到语义理解的实战转型

搜索引擎优化(SEO)正经历一场由自然语言处理(NLP)驱动的根本性变革。传统基于字符串匹配的关键词优化已无法应对用户日益复杂的意图表达,如‘脚踝老扭伤,跑5公里就疼’这类富含场景、症状与诉求的长尾查询。其底层原理在于BERT等预训练语言模型实现了双向语境建模,使搜索系统能理解词与词之间的语义关系,而非简单统计共现;知识图谱则进一步将SEO竞争单位从网页升维至实体,依赖自然语言描述构建可信关系网络。这一范式迁移带来显著技术价值:提升内容相关性、增强意图覆盖广度、加速知识面板收录,并直接改善转化率与用户停留时

weixin_30904593的博客 394

持续学习系统:构建终身学习的AI模型

在当今快速发展的科技时代,人工智能(AI)技术正以前所未有的速度改变着我们的生活和工作方式。传统的AI模型通常是针对特定任务在固定数据集上进行训练,一旦训练完成,模型的参数就基本固定,难以适应新的数据和变化的环境。然而,现实世界是动态变化的,数据不断更新,新的任务不断涌现。为了使AI系统能够像人类一样持续学习新知识、适应新环境,构建持续学习系统,实现AI模型的终身学习成为了当前人工智能领域的研究热点。

AI大模型应用之禅 705

词权重问题

词权重问题 原文来自:微信公众号:CS的陋室(chashaoroom) 欢迎关注微信公众号:鸿煊的学习笔记(Techs_AI) NLP领域,大家的目标可能都集中在语言模型、文本分类、命名实体识别等热点任务上,且由于NLP的自动特征工程的特性,词权重问题显得就不那么在大家的目光中,但实际上,他却在很多领域里产生了重要作用,个人感觉词权重更像是一个支持性的任务,能给很多具体任务提供参考吧,而且这种支持因为简单快捷,效果显著,甚至能代替大体量模型完成基线任务,所以在工业界其实用处不少,但是又由于其工作.

jp_666的博客 1316

信息抽取Python算法总结:词库匹配,词向量,TFIDF,机器学习,深度学习(持续更)

文章目录词典匹配词典匹配升级版:设定阈值、多标签TFIDF词典匹配+词向量TFIDF+词向量LDA 词典匹配 from jieba import cut lexicon = {'剑圣', '大法师', '守望者', '山丘之王'} def extract(text): return [w for w in cut(text)if w in lexicon] print(extract('剑圣斩杀大法师')) 词典匹配升级版:设定阈值、多标签 TFIDF 词典匹配+词向量 TFIDF+词向量

ArYe 1601

详细介绍NLP关键词提取算法

详细介绍NLP关键词提取算法

zag666的博客 4587

基于Python与Django的主观题自动阅卷系统:从NLP算法到Web应用实现

自然语言处理(NLP)是人工智能领域的关键技术,其核心目标之一是让计算机理解并处理人类语言。在文本处理中,TF-IDF(词频-逆文档频率)与余弦相似度是衡量文档间相似性的经典算法,它们通过将文本向量化并计算空间夹角来量化语义关联。这些技术在教育科技领域具有重要价值,能够辅助实现高效、客观的评估过程。主观题自动阅卷系统正是这一价值的典型应用,它通过构建多层级的评分流水线(如关键词匹配与语义相似度计算),将NLP基础算法工程化,为教师提供评分参考,有效缓解大规模人工阅卷的压力。本文以Python和Django框

weixin_34341117的博客 425

Python+Django实现主观题自动阅卷:NLP算法与工程实践全解析

自然语言处理(NLP)是人工智能的重要分支,其核心目标之一是让计算机理解人类语言。文本相似度计算作为NLP的关键技术,通过向量化表示和距离度量来量化文本间的语义关联,其技术价值在于能够自动化处理海量文本的比对任务。在工程实践中,结合TF-IDF、词向量等算法,该技术被广泛应用于智能客服、搜索引擎和内容推荐等场景。本文聚焦于主观题自动阅卷这一具体应用,深入探讨了如何利用NLP中的文本相似度计算和关键词提取技术,构建一个融合Django框架的完整评分系统,并详细解析了从文本预处理、算法选型到系统部署优化的全流程

weixin_30824479的博客 460

NLP基本工具之jieba:关键词提取

jieba除了最重要的功能--分词之外,还可以进行关键词提取以及词性标注。 使用: import jieba # 导入 jieba import jieba.analyse as anls #关键词提取 import jieba.posseg as pseg #词性标注 其中,关键词提取有两种算法: 第一种是TF-IDF算法(Term Frequency-Inverse D...

AI人工智能与大数据 2882

保姆级教程:STK 11.0 从下载到安装成功(附Matlab互联配置与常见问题解决)

本文提供STK 11.0的完整安装指南,包括下载、安装步骤、Matlab互联配置及常见问题解决方案。详细介绍了系统要求核查、分步安装流程、关键文件替换和许可证配置,确保用户能够顺利完成STK 11.0的部署并实现与Matlab的无缝对接。

weixin_30698297的博客 347

探索自然语言处理的新星:HankCS的TextRank

探索自然语言处理的新星:HankCS的TextRank 在大数据和人工智能的浪潮中,自然语言处理(NLP)是至关重要的一环。今天,我们想要向您推荐一个在NLP领域中颇具创新性的开源项目——。这是一个基于Python的库,实现了TextRank算法,并扩展了多种与文本挖掘、信息提取相关的功能。 项目简介 TextRank是由Google用于网页排名的一种算法,原理基于图论中的PageRank思想,被...

gitblog_00068的博客 427

避坑指南:你的VASP CI-NEB计算为什么不收敛?常见错误分析与解决思路

本文深入解析VASP CI-NEB计算不收敛的常见问题,提供从结构准备到参数设置的系统解决方案。针对过渡态计算中的能量曲线异常、中间图像偏离等典型问题,详细介绍了诊断方法和实用工具,帮助研究者高效解决CI-NEB收敛难题,提升计算效率。

weixin_29698641的博客 435

Centos7.9使用kubeadm部署K8S集群

使用kubeadm部署一个k8s集群,单master+2worker节点。

lldhsds的专栏 1302

ASO关键词优化实战:从算法原理到应用商店排名提升

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94960141的博客 435

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 795

探索自然语言处理的新高度:NLP_summary 项目解析

探索自然语言处理的新高度:NLP_summary 项目解析 在人工智能领域,自然语言处理(NLP)是不可或缺的一环,而高效、准确的文本摘要更是其重要应用之一。今天我们要介绍的是一个名为 的开源项目,它旨在为开发者提供强大的文本摘要工具。 项目简介 NLP_summary 是由 qiangsiwei 创建的一个 Python 库,它集成了多种先进的文本摘要算法,包括基于概率模型的 LexRank ...

gitblog_00051的博客 451

大疆mini 3 pro rtmp推流(带屏遥控器不支持)windows

大疆mini 3 pro无人机rtmp推流(带屏遥控器不支持)至windows电脑

xbsigeibwkouvfcj的博客 3432

2月底速申!国家超算互联网免费算力全攻略|编程小白零消耗实操首测_2026-02-26

2月底速申!国家超算互联网免费算力全攻略|编程小白零消耗实操首测作为一名编程小白,我目前正在学习编译和运行 Qt 框架,也在逐步摸索开发环境的配置方法,目标是打造一款属于自己的个人效率工具。就在这时,我挖到了一个国家级硬核福利:国家超算互联网核心节点开放免费试运行!哪怕是零基础如我,也能申领到 100 卡时异构加速卡算力,关键是——2 月底前申请更稳妥,早占位早使用。

qq_58517981的博客 2126

AI绘画描述关键词的逻辑解析与工程实践

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94960055的博客 257

第一章 DRM 子系统概述:1.2 专栏定位与技术覆盖范围

本专栏系统解析Linux内核DRM图形子系统的核心技术,涵盖GEM对象管理、TTM内存机制、DRM-Fence同步等核心模块,深入剖析DMA-BUF共享、DMA_Resv资源管理等关键技术。通过解读内核源码与用户态接口(libdrm),结合进程管理、匿名inode等底层机制,构建完整的DRM知识体系。专栏兼顾深度与易懂性,辅以实际应用场景分析,既适合图形驱动开发新手入门,也可满足资深工程师进阶需求,帮助读者掌握从内核实现到应用开发的全栈知识。

图形/计算GPU的驱动与虚拟化技术分享园地 3031

python3.6-制作一个含有NLP基本功能系统(Windows exe)自然语言处理系统

系统功能: 分词、词性标注、关键词提取、文本分类; 系统实现: 分词:使用jieba中文分词(去停用词,精确模式); 词性标注:使用jieba库里的posseg包进行词性标注; 关键词提取:使用tfidf的最合适前六个词; 文本分类:给复旦预料数据进行分词,生成词向量,装袋(词袋模型),接着训练集训练,多次调参,具体参数注释和代码中有,然后再选择相应测试预料进行测试,用的是skleran库的多项式朴素贝叶斯算法。(有参考其他博客) 图形界面: ...

bensonrachel的博客 916

如何计算 R 中的基尼系数(附示例)

以意大利统计学家Corrado Gini命名,基尼系数是衡量人口收入分配的一种方法。基尼系数的值在 0 到 1 之间,值越高代表收入不平等越大,其中:0代表完全的收入平等(每个人的收入都一样) 1代表完全的收入不平等(一个人拥有所有收入) 您可以在此处找到按国家/地区列出的基尼系数列表。以下示例显示了使用DescTools包中的Gini()函数计算 R 中的基尼系数的两种方法。示例 1:使用个人收入计算基尼系数假设我们有以下 10 个人的年收入列表:收入:5 万美元、5 万美元、7 万美元、7 万美元、7

Mrrunsen的博客 2991

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

推荐开源项目:`pke` - Python关键词抽取神器

`pke` 是一个基于Python的**开放源代码**的关键短语提取工具包,专为研究者和开发者提供了一站式的关键词抽取解决方案。它支持自定义或扩展现有模型,便于比较不同算法的效果,并内置了在[SemEval-2010](http://aclweb.org/anthology/S10-1004)数据集上训练的监督模型。 ![](https://github.com/boudinfl/pke/act...

gitblog_00041的博客 758

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 词向量变种大全Python原创代码:引入词性、引入TFIDF、单位向量、降维
下一篇: 标注数据类型及对应的监督学习方案
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值