自然语言处理(NLP)—— 信息提取与文档分类

1. 初识信息提取

1.1 信息提取的基本知识

1.1.1 信息提取的概念

        信息提取(IE, Information Extraction)是自然语言处理(NLP)领域的一个重要分支,它专注于从文档或语料库中提取结构化信息。这与信息检索(IR, Information Retrieval)有所不同,后者是寻找包含某些信息的文档。IE更加关注于从这些文档中提取出具体的数据点,比如实体、实体之间的关系、实体的修饰词,以及更复杂的结构如表格和列表。

1.1.2 实体

        在信息提取中,实体通常是指名词短语,可以是单个词或几个词组成的短语。一个命名实体(Named Entity, NE)是特指某种具体事物的专有名词,比如人名、地名、机构名、缩写、时间表达式、货币或数字表达式等。在医学领域,一个命名实体可以是疾病、蛋白质、基因等的名称。

1.1.3 实体关系

        实体关系是指实体之间的逻辑关系或动作,可以理解为谓语,它描述了实体间的互动或属性关联。

1.1.4 信息提取的应用

        信息提取被广泛应用于各种场景,例如:

        自动摘要:从文档中提取关键句子或信息点来生成摘要
        事件检测:识别文本中描述的特定事件及其相关细节
        知识图谱构建:从大量文本中提取实体及其关系,构建知识库。

1.1.5 语义角色标注

        语义角色标注(Semantic Role Labeling, SRL)是信息提取的一个相关技术,它做的是相反的工作:给定一个谓语,找出它的各种语义角色或参数。这些语义角色回答了与动作相关的5W1H问题(谁、什么、何时、何地、为什么、怎样)。通过标注句子中谓语的各个语义角色,SRL有助于深入理解句子的意义,进一步支持复杂的信息提取和文本分析任务。

1.2 基于规则的方法

        在信息提取(IE)领域,基于规则的方法是一种传统但强大的技术。这种方法依赖于预定义的规则来识别和提取文本中的特定信息。规则可以是简单的正则表达式或更复杂的模式,涉及词汇、词性标签(POS tags)、外部字典、以及之前提取过程中的注解。

1.2.1 规则的类型

        正则表达式:使用正则表达式来匹配文本中符合特定模式的字符串。例如,匹配电子邮件地址或电话号码的正则表达式。
        复杂模式:这些模式可能包括词序(即词汇的顺序)、词性标签、语义标签,以及对特定词汇的引用。这些模式能够识别更复杂的语言结构,如特定类型的短语或句子。

1.2.2 规则的应用

        上下文模式 → 行动:这种类型的规则根据上下文模式识别文本中的实体或实体关系,然后执行一个特定的动作,如标记一个实体或一组实体及它们之间的关系。
        标记实体:规则可以用来标记单个实体或实体组,识别出文本中的特定信息点。
        标记实体关系:除了标记实体本身,规则还可以用来识别和标记实体之间的关系。

1.2.3 规则的排序

        规则的应用顺序非常重要,因为早期应用的规则可能会影响后续规则的匹配效果。通常,更具体的规则应该先于更通用的规则应用,以确保高精度的信息提取。

1.2.4 规则的创建

        手工编写:专家根据对领域的理解手工编写规则。这种方法可以达到很高的准确率,但耗时且难以覆盖所有情况。
        从语料库学习:使用机器学习技术从标注好的语料库中自动学习规则。这种方法可以在大规模数据上应用,但可能需要大量的标注数据来训练模型。

        基于规则的方法在特定领域或应用场景下仍然非常有效,尤其是在那些规则容易定义且变化不大的情况下。然而,随着机器学习技术的发展,许多IE任务开始采用基于学习的方法,以提高灵活性和扩展性。

1.3 统计方法

        在信息提取(IE)的领域内,统计方法为识别和提取文本中的结构化信息提供了一种动态且强大的途径。这些方法通常依赖于对文本数据的数学建模,以学习词语或文本段落如何组织成有意义的信息单元。统计方法可以按照不同的数据单位进行操作:单个词(tokens)或文本段落(segments)。

1.3.1 基于Token的方法

        在基于Token的方法中,处理的基本单元是单个词或标记(tokens)。给定一个序列的tokens(x_1, x_2, ..., x_n),目标是为每个token分配一个标签y_i \in Y。这里的Y是可能的标签集合,标签可以代表实体类型(如人名、地点、日期等)或其他相关信息。这种方法适合于任务如命名实体识别(NER),其中每个词需要被分类为特定类型的实体或非实体。

1.3.1.1 基于Token的方法示例:命名实体识别(NER)

        任务描述:从一段文本中识别出特定类型的实体,如人名、组织名、地点名等。

        示例文本:`"Alice and Bob visited the Microsoft headquarters in Redmond, Washington."`

        在这个例子中,基于Token的方法会将文本分解为单个词或Token,并为每个Token分配一个标签,表明它是否是一个命名实体,以及它属于哪种类型的实体。处理结果可能如下:

        Alice → B-PER (一个人名的开始)
        and → O (非实体)
        Bob → B-PER (另一个人名的开始)
        visited → O (非实体)
        the → O (非实体)
        Microsoft → B-ORG (一个组织名的开始)
        headquarters → O (非实体,虽然与一个实体相关)
        in → O (非实体)
        Redmond → B-LOC (一个地点名的开始)
        , → O (非实体)
        Washington → B-LOC (另一个地点名的开始)

        在这个过程中,每个词根据其在句子中的角色被标记,如B-PER(人名开始)、B-LOC(地点名开始)等。

1.3.2 基于Segment的方法

        与基于Token的方法不同,基于Segment的方法关注于识别文本中的连续片段,并为这些片段整体分配标签。这里,我们寻找一个片段序列s_1, s_2, ..., s_p,每个片段 s_j = l_j ... u_j被赋予一个标签 y_i。这种方法更适合于提取具有明确边界的信息块,例如短语或句子中的特定信息单元。

1.3.2.1 基于Segment的方法示例:信息抽取(特定信息段落)

        任务描述:从文档中提取包含特定信息的完整段落或句子,例如,抽取含有公司合并信息的句子。

        示例文本:`"The tech industry has seen a lot of mergers and acquisitions this year. Notably, Company A announced its acquisition of Company B, marking a significant shift in the market."`

        在这个例子中,基于Segment的方法可能会识别并提取整个句子或段落,因为它们包含了感兴趣的事件——公司合并。处理结果可能如下:

        Segment 1:`"Notably, Company A announced its acquisition of Company B, marking a significant shift in the market."`

        在这个过程中,整个段落被识别为包含有价值信息的单元,并被整体提取出来。标记可能不直接应用于单个词,而是应用于识别为包含特定信息的文本块。

        这两个示例展示了基于Token和基于Segment的信息提取方法在实际应用中的不同用途和处理方式。基于Token的方法适合于精细地识别文本中的特定元素,而基于Segment的方法则更适合于提取包含完整信息单元的文本段落。

1.3.3 统计方法的应用

        为了实现这些目标,研究者们已经采用了多种统计模型,包括:

        隐马尔可夫模型(HMM):一种序列模型,用于标记序列中的每个元素。
        最大熵马尔可夫模型(MEMM):一种在HMM基础上增加了特征函数的模型,允许更复杂的特征依赖。
        条件随机场(CRF):一种用于序列数据的统计建模方法,能够考虑整个序列的上下文信息,而不仅仅是独立的元素。CRF尤其适用于处理复杂的依赖和约束,因此在信息提取任务中表现很好。

        在实际应用中,CRFs因其强大的建模能力和灵活性,尤其在处理文本中的长范围依赖关系时,被证明是非常有效的。通过使用CRFs或类似的统计方法,信息提取系统能够学习如何最准确地识别和分类文本中的各种实体和它们之间的关系,从而支持从大量未结构化文本中提取有价值的信息。

2. 指代消解

2.1 指代消解的概念

        指代消解(Anaphora Resolution)是信息提取(IE)中的一个关键任务,涉及到识别文本中指向相同实体的不同表达。

        示例句子:“Le président de la république a rencontré le serial-killer dans sa cellule. Il a avoué éprouver des remords pour ses actes。”

        在给出的法语示例中,问题在于确定“sa”和“il”分别指代的是“le président de la république”还是“le serial-killer”。

        在这个例子中,我们需要决定“sa”(他的)和“il”(他)分别指的是哪个先行词——“le président de la république”(1)还是“le serial-killer”(2)。

2.2 指代消解的一般方法

        a. 识别/划定搜索先行词的范围:首先确定要在哪些句子或段落中寻找先行词。在上面的例子中,我们会在整个文段中搜索先行词
   
        b. 使用一致性测试:通过性别、数、格等特征进行一系列一致性测试,以排除一批候选项。例如,如果指代词是单数男性,那么任何不是单数男性的候选都将被排除。

        c. 对剩余候选进行加权:根据特定规则对剩余候选进行加权。这可能包括考虑句法结构、语义角色以及指代词与可能先行词之间的距离等因素。

        d. 选择权重最高的候选:最终,选择权重最高的候选作为正确的先行词。

2.3 示例分析

        sa cellule”(他的牢房):考虑到上下文,“sa”很可能指的是“le serial-killer”,因为牢房与罪犯相关。根据常识和句子的逻辑关系,我们可以推断“sa”指的是“le serial-killer”(2)。

        Il a avoué”(他承认了):在这个句子中,“il”可能指代“le président de la république”或“le serial-killer”。但考虑到“avoué éprouver des remords pour ses actes”(承认为他的行为感到懊悔),更符合逻辑的解释是“il”指的是“le serial-killer”(2),因为这是跟他的行为直接相关的活动。

        通过这种方法,我们可以更准确地理解文本的含义,从而提高信息提取的质量。指代消解对于构建准确的信息抽取系统和提高自然语言理解能力至关重要。

2.4 两种主要的处理策略

        在指代消解领域,基于规则的方法和统计方法是两种主要的处理策略。它们各自采用不同的技术来识别和解决文本中的指代关系,即确定句子或段落中的代词或指示性短语所指向的具体实体。

2.4.1 基于规则的方法

        基于规则的方法依赖于预定义的规则集来进行指代消解。这些规则通常基于语言学的特征,如词性标记(POS tag)和句法功能(如主语、间接宾语coi、直接宾语cod等)。

        CogNIAC [Baldwin 1995]:提出了六条规则,并且这些规则有特定的应用顺序。这种方法试图通过一系列明确的逻辑步骤来精确地识别指代和先行词之间的关系。

        Kennedy & Boguraev [1996]:根据十个因素给出正向权重,这些因素涉及词性标记和句法功能。这种方法尝试通过评估可能的指代和先行词之间的语言学特征来解决指代关系。

        Mitkov [1998]:应用正向和负向权重,根据一些指标(如词性、句法以及指代和先行词之间的距离)来进行判断。Mitkov的方法特别注意到了距离因素,考虑到距离可能对指代关系的确定产生重要影响。

2.4.2 统计方法

        与基于规则的方法不同,统计方法利用大量已标注的数据来训练模型,以识别指代和先行词之间的关系。这些方法通常不依赖于硬性的规则,而是通过学习数据集中的模式来进行预测。

        Soon et al. [2001]:采用了指标(他们称之为标记物markables)的概念,并对预先标注的语料进行训练。通过机器学习技术,他们的系统学习如何基于语料库中的例子来识别和解析指代关系。这种方法的一个主要优点是它可以适应新的语料和语言现象,因为模型是基于实际数据学习而来的。

        两种方法各有优势:基于规则的方法在规则清晰且适用的情况下可以非常精确,但可能需要大量的手动工作来定义规则,并可能难以覆盖所有可能的语言现象。统计方法能够自动从大量数据中学习,适应性强,但可能需要大量的标注数据,且在数据稀缺的情况下性能可能下降。在实践中,这两种方法有时会被结合使用,以充分利用各自的优势。

2.5 语义方法

        在指代消解的语义方法中,研究者们试图利用实体之间的语义关系来改善消解过程。Markert和Nissim在2005年的工作中讨论了使用语义输入(例如在WordNet中搜索语义邻近性)的方法,但他们指出这些方法并没有给出非常好的结果。这主要是因为所使用的本体论(ontologies)缺乏精细度和完整性。

2.5.1 语义方法的挑战

        以Markert和Nissim提供的例子为例:

        文本示例:`"Will Quinlan had not inherited a damaged retinoblastoma suppressor gene and, therefore, faced no more risk than other children."`

        在这个例子中,“W. Q.”(Will Quinlan)被识别为一个命名实体,其实体类别为“人”。问题在于决定“child”(儿童)是否在本体论中作为“人”的下义词(hyponym)或同义词出现。这种语义层面的分析对于理解“other children”实际上指代“W. Q.”本人还是其他某些儿童至关重要。

        在语义方法中处理指代消解时,使用像WordNet这样的语义网络来理解和解析词汇的关系是一种常见的做法。在提到的例子中,需要确定“child”是否在语义上可以视为“person”的下位词或同义词,以解决指代消解中的一个问题。

        根据WordNet的层次结构,我们可以看到“child”确实是“person”的一个下位词(hyponym)。这一层次结构如下所示:

        child (儿童):被定义为“任意性别的年轻人”,直接的上位词(hypernym)是“juvenile (少年)”。
        juvenile (少年):是“person (人)”的下位词,定义为“尚未完全发育的年轻人”。
        person (人):被定义为“一个人类个体”,是更广泛概念“organism (有机体)”的下位词。

        这一关系链表明,在WordNet中,“child”是“person”的下位词,这有助于解决一些语义上的指代消解问题。例如,在句子“Will Quinlan had not inherited a damaged retinoblastoma suppressor gene and, therefore, faced no more risk than other children.”中,“W.Q.”被识别为一个名词实体(Named Entity),类别为人(person),而“child”在这种情况下可以被视为指向相同类别实体的指代。

        虽然使用语义网络和本体论可以提供重要的语义信息来帮助指代消解,但[Markert Nissim 2005]指出,这种方法并不总是能达到很好的结果,原因是本体论的精细度和完整性可能不足。这强调了在实际应用中结合多种方法和策略的重要性,以及持续改进和扩展语义资源的必要性。        

2.5.2 语义方法的核心挑战

        本体论的完整性和精细度:如果本体论没有包含足够的细节或广度,它可能无法覆盖所有需要的语义关系,从而导致指代消解过程中的错误或不准确。
        语义关系的复杂性:实体之间的语义关系可能非常复杂,单纯依靠语义近似搜索可能不足以准确反映实体间的关系。
        上下文的影响:即使本体论足够丰富和精确,上下文因素也可能导致指代关系的变化,需要更精细化的处理机制来考虑这些因素。

2.5.3 解决方案

        为了克服这些挑战,可能需要结合多种方法和更先进的语义分析技术,例如:

        改进本体论:开发更全面、更细致的本体论,更好地覆盖不同领域和上下文中的语义关系。
        结合上下文分析:使用先进的自然语言处理技术来分析上下文,以更准确地识别语义关系。
        融合多种方法:将语义方法与规则基础、统计或机器学习方法结合起来,以利用各种方法的优点,提高指代消解的准确性。

        通过这种多角度、多技术的综合方法,可以更有效地解决语义方法在指代消解中面临的挑战,提高信息提取任务的总体性能。

3. 监督式文档分类

        在监督式文档分类中,目标是将文档根据预定义的类别进行分类。这个过程通常涉及几个关键步骤,从预处理阶段开始,到最终的分类决策。下面是这个过程的概述:

3.1 预处理阶段

        文档预处理:在这一阶段,原始文档经过一系列处理步骤,如去除停用词、词干提取、词形还原等,以提取出对分类有用的信息。
        信息提取:从文档中提取所需的信息,并将其集成到文档的表示中。这可能包括提取特定的实体、概念或任何其他可以用于分类的信息。

3.2 文档表示

        特征表示:文档通常通过一组特征来表示,这些特征可以被赋予权重。特征可以是文档中出现的词或短语,也可以是更复杂的语义单位,如同义词或上位词。
        词袋模型(Bag-of-Words, BoW):在这个模型中,每个词的出现(或频率)被视为一个属性(向量空间的一个维度)。有时,为了丰富文档的语义表示,可能会添加词的同义词或上位词。
        特征权重:使用词频-逆文档频率(tf-idf)作为文档中术语的权重。tf-idf衡量了一个词在文档中的重要性,同时考虑了它在整个文档集合中的分布情况。

3.3 监督式分类

        分类器训练:在监督式学习中,使用带有预定义类别标签的训练集来训练分类器。分类器学习如何根据文档的特征表示将其分配到一个或多个类别。
        类别预测:训练好的分类器被用于预测未标记文档的类别。

3.4 常用的分类算法

        朴素贝叶斯(Naive Bayes):基于概率的简单方法,尤其适用于文本数据。
        支持向量机(SVM):一种强大的线性分类器,适用于高维数据。
        随机森林(Random Forest):一种基于决策树的集成学习方法,能够处理非线性关系。
        深度学习:利用神经网络,尤其是卷积神经网络(CNN)和循环神经网络(RNN),进行文本分类。

        监督式文档分类的成功在很大程度上依赖于有效的特征提取、合适的模型选择,以及足够的训练数据。通过细致地调整这些因素,可以大大提高分类的准确性和效率。

4. 降维

        让我用更简单的语言解释一下什么是降维,以及隐含语义索引(LSI)是如何工作的。

4.1 什么是降维?

        想象一下,每篇文档都是由许多不同的单词组成的,如果我们试图了解这些文档的内容,每个不同的单词都会是一个维度。比如,如果我们有成千上万个不同的单词,那我们就有成千上万个维度。这就像试图在一个非常庞大的空间内找到每篇文档的位置,非常复杂!

        降维就是一种方法,帮助我们减少这些维度的数量,但同时尽量保持原有的信息。这样做可以让我们更容易地处理和分析文档。

4.2 线性降维方法——隐含语义索引(LSI)

        LSI是一种降维技术,特别用于处理文档和单词。它的目的是帮助我们找到文档中单词的隐藏(隐含的)关系,即使这些单词没有直接出现在同一个文档中。

4.2.1 创建矩阵

        首先,我们创建一个“文档-单词”矩阵,其中的每一行代表一个文档,每一列代表一个单词。如果一个单词在某个文档中出现,那么相应的位置就有一个数字(通常是出现的次数或一个加权值),否则就是0。

4.2.2 奇异值分解(SVD)

        然后,我们对这个矩阵进行一种特殊的数学操作——奇异值分解。这个过程会把原始的矩阵分解成三个新的矩阵(U, S, V),每个都有其特殊的数学意义。

        奇异值分解(Singular Value Decomposition,简称SVD)是线性代数中的一种重要技术,它可以分解任何形状的矩阵(不仅仅是方阵)。在SVD中,“奇异值”是矩阵分解过程中得到的一组特殊值。

        假设我们有一个m \times n的矩阵\( A \),我们可以将其分解为三个特殊矩阵的乘积:

A = U\Sigma V^T

        这里:

        U是一个m \times m的矩阵,称为左奇异向量矩阵,它的列向量是正交的。
       V是一个n \times n的矩阵,称为右奇异向量矩阵,它的列向量也是正交的。
       \Sigma是一个m \times n的对角矩阵,其对角线上的元素就是所谓的奇异值,而其余元素都是0。这些奇异值是从大到小排列的非负实数。

        奇异值反映了矩阵A的某些重要特性。在几何意义上,对于线性变换来说,奇异值表示变换中的拉伸因子。如果A是一个表示某种线性变换的矩阵,那么奇异值告诉我们变换会如何拉伸或压缩输入空间。

        在数据分析和信号处理等领域,奇异值用于确定矩阵的“秩”(即非零奇异值的数量),以及矩阵的信息内容。奇异值越大,相应的方向在数据中就越重要。通过保留最大的几个奇异值(以及相应的奇异向量),可以在降维时保留矩阵的主要特征,这是LSI中使用的主要原理。

4.2.3 选择主要成分

        接下来,我们只保留这些新矩阵中最重要的部分,这相当于去除了那些不那么重要(或者说是“噪音”)的信息。

4.2.4 重建矩阵

        最后,我们用这些保留下来的部分重建一个新的矩阵。这个新矩阵比原始矩阵小得多(也就是维度少得多),但仍然保留了大部分重要信息。

4.2.5 为什么要这么做?

        这样做有几个好处:
        简化数据:降低了处理和分析文档的复杂度。
        发现隐含关系:帮助我们发现单词之间的隐藏语义关系,即使这些单词没有在同一文档中直接出现。
        提高效率:使得数据处理和后续任务(如文档分类)更加高效。

        总之,LSI是一种通过减少数据维度同时揭示文档中隐藏信息的技术。这对于文本处理和信息检索等任务非常有用。

4.2.6 示例

        让我们用一个简化的例子来说明LSI(隐含语义索引)是如何工作的,特别是在文档降维上的应用。

        假设我们有3篇文档和4个单词(术语)构成的一个小型文档集合,文档-术语矩阵如下:

|           | 词1| 词2| 词3 | 词4 |
|---------|--- --|-----|-----|---   --|
| 文档1 |  1   | 1   | 0   |   0   |
| 文档2 |  0   | 1   | 1   |   0   |
| 文档3 |  1   | 0   | 1   |   1   |

        在这个矩阵中,行代表文档,列代表单词,数字代表该单词在文档中的出现频率(为了简化,这里使用0和1)。

4.2.6.1 应用LSI

        奇异值分解(SVD):我们首先对这个矩阵进行SVD分解,得到U, S, 和V^T三个矩阵。假设我们进行了分解,得到的S中的奇异值按降序排列。

        选择奇异值:为了降维,我们可能只选择前2个最大的奇异值及其对应的向量。这样做的结果是我们忽略了一些信息,但保留了最重要的结构特征。

        重构矩阵:使用这两个最大的奇异值及其对应的U和V的列,我们可以重构一个新的矩阵,这个矩阵是原始矩阵的一个近似,但维度更低。

4.2.6.2 降维的结果

        假设降维后的矩阵如下所示:

|         | 主题1 | 主题2 |
|---------|-------|-------|
| 文档1 | 0.9   | 0.1   |
| 文档2 | 0.5   | 0.5   |
| 文档3 | 0.2   | 0.8   |

        在这个新的矩阵中,每个文档现在只用两个数(而不是原来的四个)来表示,这两个数代表了文档在两个“主题”上的得分。这里的“主题”是通过LSI提取的隐含语义维度,它可能对应于原始单词的某种组合,揭示了文档内容的核心主题或概念。

4.2.6.3 结果解释

        文档1:更强烈地与“主题1”相关联,可能意味着它主要讨论与这个主题相关的内容。
        文档2:在两个主题上得分接近,表明它可能涵盖两个主题的内容。
        文档3:主要与“主题2”相关联。

        通过这个过程,LSI帮助我们从原始的高维数据中提取出最重要的语义维度,同时降低了处理的复杂度,并可能揭示出文档之间的隐含关系。

4.3 非线性降维方法 —— 流形学习(Manifold Learning)

        非线性降维方法能够在处理复杂数据结构时捕捉到数据的内在结构,这在线性方法如LSI可能无法实现的情况下尤其有用。其中一种流行的非线性降维方法是流形学习(Manifold Learning),其核心理念是数据点可能分布在一个复杂的、非线性的低维流形上,即使在高维空间中。

4.3.1 ISOMAP算法

        ISOMAP(Isometric Mapping)算法是Tenenbaum在2001年提出的一种流形学习方法,它通过保留数据内在的几何关系来实现降维。ISOMAP执行以下步骤:

        邻居寻找:首先确定每个数据点的邻居,通常是根据欧几里得距离。一个点的邻居定义为在某个半径ε之内的所有点。

        构建图:创建一个图,其中的节点是数据点,边连接每个数据点和它的邻居。边的权重是邻居之间的欧几里得距离。

        计算测地距离:对于图中的每一对点,使用Dijkstra算法或其他最短路径算法来找出它们之间的最短路径,这代表了它们在流形上的测地距离。

        多维缩放(MDS):利用图中的测地距离矩阵,通过多维缩放(MDS)来在低维空间中重构数据点,这样在原始高维空间中距离远的点,在新的低维表示中也会相隔较远。

4.3.2 流形学习的优点和限制

        优点:流形学习尤其适合于非线性结构的数据,能揭示数据中的内在结构,这对于模式识别和机器学习任务特别有价值。
  
        限制:计算测地距离需要构建和维护大型图,这可能在大规模数据集上导致计算量很大。另外,流形学习方法通常对超参数(如ε)比较敏感,而且对于数据集中的噪声也比较敏感。

        流形学习是探索数据本质结构的强大工具,但它的应用需要仔细考虑数据的特性和降维的目的。

5. 文档分类

        在文档分类中,一旦将文档表示为维数合理的向量,我们就可以使用经典的数据挖掘方法进行分类。这些方法可以是基于规则的、统计的、或者是利用机器学习算法的。下面是一些在文档分类中常用的方法:

5.1 基于规则的方法

        逻辑规则(比如析取范式,DNF):使用手工编写的规则来分类文档。这种方法依赖于领域知识和对数据集的深入理解。

5.2 统计方法

        朴素贝叶斯分类器:尽管朴素贝叶斯分类器的基本假设是文档中的所有词都是独立的,但它在实践中通常非常鲁棒,因为它的性能不太受违反独立性假设的影响。

        逻辑回归:用于估计文档属于某个类别的概率,是一种常用的分类方法。

        决策树(如ID3、C4.5、CART):通过学习文档特征与类别之间的决策规则,以树状结构表示决策路径。

        Rocchio的方法:通常用于信息检索中的相关性反馈,也可以用于分类。

        神经网络:可以学习复杂的模式,适用于非线性可分的数据。

        k近邻(kNN):基于最近邻的投票机制进行分类。

        支持向量机(SVM):寻找不同类别之间的最优分割边界。

        AdaBoost:一种提升方法,通过组合多个弱分类器形成一个强分类器。

5.3 无监督分类

        k-Means:是一种聚类算法,将文档分为k个簇,尝试最小化每个簇内部的方差。

        在应用这些方法之前,通常需要对文档数据进行预处理,如去除停用词、进行词干提取、构建词袋模型,以及使用词频-逆文档频率(TF-IDF)等技术为每个文档生成向量表示。然后根据训练集对分类模型进行训练,之后使用这些模型来预测新文档的类别。每种方法都有其优势和局限性,选择哪一种取决于具体的应用场景、数据特性以及性能要求。        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/669792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

江协科技STM32学习-1 购买24Mhz采样逻辑分析仪

前言: 本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记,在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。 引用: STM32入门教程-2023版 细致讲…

windows11家庭版、专业版、工作站版区别

windows11家庭版、专业版、工作站版区别 1、windows11家庭版和专业版的区别2、windows11家庭版和工作站版的区别 1、windows11家庭版和专业版的区别 windows11专业版需要$808 windows11专业版和家庭版功能对比 2、windows11家庭版和工作站版的区别 windows11工作站版需要$168…

Python基础教程——数据类型和变量

数据类型和变量 Python使用缩进来组织代码块,一般使用4个空格的缩进.使用#来注释一行,其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块.Python对大小写敏感. 1.1 整数 Python可以处理任意大小的整数,包括负整数,写法与数学上写法一致,例如:-10…

揭秘小程序商城的团购奇迹:独特模式引领盈利新纪元

在数字经济的新纪元里,你是否对那些不张扬却充满潜力的商业模式心生好奇?今天,我要为你揭示一种别出心裁的商业模式,它以其独特的魅力,不仅迅速吸引了大量用户的目光,更在短短一个月内创造了超过600万的惊人…

javascript DOM 设置样式

No.内容链接1Openlayers 【入门教程】 - 【源代码示例300】 2Leaflet 【入门教程】 - 【源代码图文示例 150】 3Cesium 【入门教程】 - 【源代码图文示例200】 4MapboxGL【入门教程】 - 【源代码图文示例150】 5前端就业宝典 【面试题详细答案 1000】 文章目录 一、直接…

EXSI虚拟机新增磁盘并将空间扩充到已有分区

这里写自定义目录标题 1、在EXSI虚拟机中新增一块磁盘配置大小2、确认新磁盘3、格式化新分区4、添加新分区到LVM5、将新增分区添加到已有分区里 1、在EXSI虚拟机中新增一块磁盘配置大小 注意事项: (1)需确保虚拟机已关闭活处于维护模式,避免数据丢失 (2…

【通信专题】I2C上拉电阻计算方法

I2C 通信总线是电子设计中常见的总线之一,由于 I2C 的硬件芯片内部为开漏输出,所以要求在外部增加一个上拉电阻,总线上拉电阻的选取受多个因素的影响,因此如何计算 I2C 总线的上拉电阻阻值成为硬件工程师在使用 I2C总统时需要关注的话题。 从本质上讲: I2C 总线电容和上升…

善听提醒遵循易经原则。世界大同只此一路。

如果说前路是一个大深坑,那必然是你之前做的事情做的不太好,当坏的时候,坏的结果来的时候,是因为你之前的行为,你也就不会再纠结了,会如何走出这个困境,是好的来了,不骄不躁&#xf…

阿里云 通过EIP实现VPC下的SNAT以及DNAT

192.168.0.85 有公网地址192.1680.95无公网地址 在192.168.0.85(有公网地址服务器上操作) #开启端口转发 echo "net.ipv4.ip_forward 1" >> /etc/sysctl.conf sysctl -p#仅允许192.168.0.95 iptables -t nat -I POSTROUTING -s 192.16…

中医的悠久历史文化

中医,作为中华民族的传统医学,拥有着悠久的历史和深厚的文化底蕴。自古以来,中医便以其独特的理论体系和治疗方法,为中华民族的繁衍昌盛做出了巨大贡献。如今,随着现代医学的不断发展,中医依然以其独特的魅…

使用onnxruntime加载YOLOv8生成的onnx文件进行目标检测

在网上下载了60多幅包含西瓜和冬瓜的图像组成melon数据集,使用 LabelMe 工具进行标注,然后使用 labelme2yolov8 脚本将json文件转换成YOLOv8支持的.txt文件,并自动生成YOLOv8支持的目录结构,包括melon.yaml文件,其内容…

Unity实现简单的持久化存储

在Unity中,运行过程中的内容是不会保存的,但是如果我们有些游戏数据需要持久化存储,应该怎么办呢,所以Unity为我们提供了一个简单的数据存储的API。 附上代码片段 //写入数据PlayerPrefs.SetInt("IntType", 1);PlayerPr…

CMake的作用域:public/private/interface

在 CMake 中,public、private和 interface是用来指定目标属性的作用域的关键字,这三个有什么区别呢?这些关键字用于控制属性的可见性和传递性,影响了目标之间的依赖关系和属性传递。 public 如果在一个目标上使用 public关键字时…

子集树与排列树的构造

排列树的构造: 无重复画法:一条线前面出现的不再出现。 有重复画法:一条线前面出现的不再出现,如果仅仅只是相似可以出现;兄弟不能相似。 目标函数是:cnt 总元素个数分支策略是全遍历,不过存…

AI播客下载:a16z (主题为AI、web3、生物技术等风险投资)

a16z播客是一个综合性的科技和创新领域的媒体平台,通过多种节目形式和丰富的内容,为广大听众提供了一个了解最新科技趋势和创新思维的窗口。a16z播客是由安德里森霍罗威茨(Andreessen Horowitz,简称a16z)推出的一个科技…

Resilience4j结合微服务出现的异常

Resilience4j结合微服务出现的异常 1、retry未生效 由于支持aop&#xff0c;所以要引入aop的依赖。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>2、circ…

20240601在Toybrick的TB-RK3588开发板上跑IPC的SDK并确认eth0

20240601在Toybrick的TB-RK3588开发板上跑IPC的SDK并确认eth0 2024/6/1 20:06 ADB的详细LOG&#xff1a; Microsoft Windows [版本 10.0.22621.3296] (c) Microsoft Corporation。保留所有权利。 C:\Users\QQ>adb shell adb server version (40) doesnt match this client …

FreeRtos进阶——通用链表的实现方式

通用链表实现方式&#xff08;一&#xff09; struct node_t {struct node_t *next; };struct person {struct node_t node;char *name;int age; };struct dog {struct node_t node;char *name;int age;char *class; };在此链表中&#xff0c;node结构体被放在了最前面&#x…

民国漫画杂志《时代漫画》第37期.PDF

时代漫画37.PDF: https://url03.ctfile.com/f/1779803-1248636302-c017ee?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

创刊即王炸?首个IF近7分,稳坐中科院1区!同领域全球第一!

【欧亚科睿学术】 01 期刊基本概况 【期刊类型】经济类SSCI 【出版社】SPRINGER出版社 【期刊概况】IF&#xff1a;8.0-9.0&#xff0c;JCR1区&#xff0c;中科院1区 【版面类型】正刊&#xff0c;仅少量版面 【预警情况】2020-2024年无预警记录 【收录年份】2016年被WO…