精华内容
下载资源
问答
  • 串的更复杂的操作,文件的第一次打交道,第一个win32程序。
  • 基于文档内部信息,利用文档的词聚类算法构建文档主题,进行关键词抽取。...综合利用隐含主题模型文档结构信息,进行关键词抽取。基于文档与关键词主题一致性的前提,提出基于机器翻译模型的关键词抽取方法。
  • Python爬虫根据关键词爬取知网论文摘要并保存到数据库中 由于实验室需要一些语料做研究,语料要求是知网上的论文摘要,但是目前最新版的知网爬起来有些麻烦,所以我利用的是知网的另外一个搜索接口

    由于实验室需要一些语料做研究,语料要求是知网上的论文摘要,但是目前最新版的知网爬起来有些麻烦,所以我利用的是知网的另外一个搜索接口

    比如下面这个网页:
    http://search.cnki.net/Search.aspx?q=肉制品

    搜索出来的结果和知网上的结果几乎一样

    在这个基础上,我简单看了些网页的结构,很容易就能写出爬取得代码(是最基础的,相当不完善,增加其他功能可自行增加)
    在这里插入图片描述
    网页的结构还是很清晰的

    在这里插入图片描述
    摘要信息也很清晰

    我使用的是 pymysql 连接的数据库,效率也还可以
    下面直接贴代码:

    # -*- coding: utf-8 -*-
    import time
    import re
    import random
    import requests
    from bs4 import BeautifulSoup
    import pymysql
    
    connection = pymysql.connect(host='',
                                 user='',
                                 password='',
                                 db='',
                                 port=3306,
                                 charset='utf8')  # 注意是utf8不是utf-8
    
    # 获取游标
    cursor = connection.cursor()
    
    #url = 'http://epub.cnki.net/grid2008/brief/detailj.aspx?filename=RLGY201806014&dbname=CJFDLAST2018'
    
    #这个headers信息必须包含,否则该网站会将你的请求重定向到其它页面
    headers = {
        'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Encoding':'gzip, deflate, sdch',
        'Accept-Language':'zh-CN,zh;q=0.8',
        'Connection':'keep-alive',
        'Host':'www.cnki.net',
        'Referer':'http://search.cnki.net/search.aspx?q=%E4%BD%9C%E8%80%85%E5%8D%95%E4%BD%8D%3a%E6%AD%A6%E6%B1%89%E5%A4%A7%E5%AD%A6&rank=relevant&cluster=zyk&val=CDFDTOTAL',
        'Upgrade-Insecure-Requests':'1',
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
    }
    
    headers1 = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
        }
    
    def get_url_list(start_url):
        depth = 20
        url_list = []
        for i in range(depth):
            try:
                url = start_url + "&p=" + str(i * 15)
                search = requests.get(url.replace('\n', ''), headers=headers1)
                soup = BeautifulSoup(search.text, 'html.parser')
                for art in soup.find_all('div', class_='wz_tab'):
                    print(art.find('a')['href'])
                    if art.find('a')['href'] not in url_list:
                        url_list.append(art.find('a')['href'])
                print("爬取第" + str(i) + "页成功!")
                time.sleep(random.randint(1, 3))
            except:
                print("爬取第" + str(i) + "页失败!")
        return url_list
    
    def get_data(url_list, wordType):
        try:
            # 通过url_results.txt读取链接进行访问
            for url in url_list:
                i = 1;
                if url == pymysql.NULL or url == '':
                    continue
                try:
                    html = requests.get(url.replace('\n', ''), headers=headers)
                    soup = BeautifulSoup(html.text, 'html.parser')
                except:
                    print("获取网页失败")
                try:
                    print(url)
                    if soup is None:
                        continue
                    # 获取标题
                    title = soup.find('title').get_text().split('-')[0]
                    # 获取作者
                    author = ''
                    for a in soup.find('div', class_='summary pad10').find('p').find_all('a', class_='KnowledgeNetLink'):
                        author += (a.get_text() + ' ')
                    # 获取摘要
                    abstract = soup.find('span', id='ChDivSummary').get_text()
                    # 获取关键词,存在没有关键词的情况
                except:
                    print("部分获取失败")
                    pass
                try:
                    key = ''
                    for k in soup.find('span', id='ChDivKeyWord').find_all('a', class_='KnowledgeNetLink'):
                        key += (k.get_text() + ' ')
                except:
                    pass
                print("第" + str(i) + "个url")
                print("【Title】:" + title)
                print("【author】:" + author)
                print("【abstract】:" + abstract)
                print("【key】:" + key)
                # 执行SQL语句
                cursor.execute('INSERT INTO cnki VALUES (NULL, %s, %s, %s, %s, %s)', (wordType, title, author, abstract, key))
                # 提交到数据库执行
                connection.commit()
    
                print()
            print("爬取完毕")
        finally:
            print()
    
    if __name__ == '__main__':
        try:
            for wordType in {"大肠杆菌", "菌群总落", "胭脂红", "日落黄"}:
                wordType = "肉+" + wordType
                start_url = "http://search.cnki.net/search.aspx?q=%s&rank=relevant&cluster=zyk&val=" % wordType
                url_list = get_url_list(start_url)
                print("开始爬取")
                get_data(url_list, wordType)
                print("一种类型爬取完毕")
            print("全部爬取完毕")
        finally:
            connection.close()
    

    在这里的关键词我简单的选了几个,作为实验,如果爬取的很多,可以写在txt文件里,直接读取就可以,非常方便。

    展开全文
  • 本文以新浪微博数据为例, 采用因子分析方法(Factor Analysis, FA), 挖掘舆情热度内在影响因素, 并通过改进Elman网络结构, 利用遗传算法(Genetic Algorithm, GA)优化初始参数来构建模型对网络舆情关键词热度进行分析...
  • 对于给定文本库,用户提交检索关键词(例如: NBA, basket, ball),在文本库中查询与检索关键词最相关的 k 个文本(例如 k=5),并根据文本与检索关键词的相关度,对这 k 个文本进行排序,将排序后的结果返回给用户...
  • 冒泡排序 快速排序 直接插入排序 简单选择排序 希尔排序 堆排序算法等对正序随机数,逆序随机数,无序随机数进行排序,并统计关键词比较次数 记录移动次数的c++代码
  • 数据结构之串—关键词索引表

    千次阅读 2016-11-15 21:38:47
    关键词索引  时隔两个月,我又回来写笔记了。  在这期间学习了一点win32 API 以后就尽量对控制台说拜拜了 ...3、将关键词插入索引表,将具有相同关键词的书的书号和关键词放在一起 比如有这样4

    关键词索引


    1、从列有书号和书名的文件中将书号和书名提取出来
    2、提取书名中的关键词
    3、将关键词插入索引表,将具有相同关键词的书的书号和关键词放在一起

    比如有这样4本书:

     006 Harry Potter and the Sorcerer's Stone
     007 Harry Potter and the Chamber of Secrets
     008 Harry Potter and the Prisoner of Azkab
     009 Harry Potter Harry and the Goblet of Fire



    将其做成关键词索引表:
     azkab 008
     chamber 007
     fire 009
     goblet 009
     harry 006 007 008 009
     potter 006 007 008 009
    展开全文
  • C语言

    万次阅读 多人点赞 2019-12-18 23:01:50
    44.C语言是结构化程序设计语言 45.c程序要通过编译,连接才能得到可执行的目标程序 46.用c语言编写程序,可以编写出任何类型的程序 47.C语言允许有空函数 48.C程序书写格式,允许一行内可以写几个语句 49.C程序的...

    公共考点
    1.算法的空间复杂度是指算法在执行过程中所需要的内存空间。
    2.算法的时间复杂度是指算法所需要的计算工作量。
    3.数据的逻辑结构与储存结构不是一一对应的。
    4.队列的修改是以先进先出的原则进行的。–与队列结构有关联的是先到先服务的作业调度。
    5.循环队列中的元素个数随队头指针和队尾指针变化而动态变化。
    6.C语言中的result只是一个自己定义的量
    7.对空和队满时,头尾指针均相等。
    8.冒泡法是在扫描过程中逐次比较相邻两个元素的大小。例:9+8+7+6+5+4+3+2+1=45.
    9.对象间的信息传递靠消息。
    10.多态性是指同一个操作可以是不同对象的行为。操作—对象。

    C语言
    1.源程序的扩展名为.c,目标程序的扩展名为.obj,可执行程序的扩展名为.exe(每个后缀为.c的C语言都可以单独进行编译)(C语言编译程序把.c编译成.obj的二进制文件)(链接形成.exe文件)
    2.循环结构、选择结构,顺序结构都是结构化程序的基本结构。
    3.N-S流程图是复杂算法的描述手段。
    4.长方形为处理框。椭圆形为连接点。
    5.一个c语言只能有一个主函数。
    6.函数的定义不可以嵌套,函数的调用可以嵌套。
    7.C语言总是以main函数开始执行。
    8.常量的类型:整型常量、实型常量、字符常量、字符串常量、符号常量。
    9.十进制整型常量:基本数字范围:0-9;(十进制小数两边必须有数字)
    八进制整型常量:以0开头,输出格式控制符为%o,基本数字范围0-7;
    十六进制整型常量:以0x开头,输出格式为%x,基本数字范围为0-15写为A-F或a-f;
    指数形式:e前必须有数字,e后必须为整数。
    10. 关键字属于标识符。(关键字不能做变量名也不能做函数名)
    11.数值型常量有整型常量、实型常量但均有正负值之分。
    12.语言的预编译处理可以可以用符号名代表一个常量定义是不必指定常量类型。
    13.实型常量又称实数或浮点数。在C语言中可以用单精度型和双精度型两种形式表示实型常量,分别用类型名float和double进行定义。实型常量在一般的微型集中占用4个字节,一般形式或者指数形式,数值范围都是-1038~1038,有效数字是7位。(不能是整形数据,如0)(常量的类型可以从字面上区分)(1为整型常量)(1.0为实型常量)(a为字符型常量)
    14.\0为八进制数,所以\09是错误的。
    15.字符常量在内存中占1个字节,字符常量可以进行关系运算。不能参与数值运算,可以参与任何整数运算。
    16.不能用字符串常量对字符数组名进行整体赋值操作。
    17.可以使用字符串常量来给一维数组进行复制。
    18.关于字节大小的问题

    16位编译器:char 1个字节  char* 2个字节 int 2个字节 float 4个字节 double 8个字节
    32位编译器:char 1个字节  char* 2个字节 int 4个字节 float 4个字节 double 8个字节
    64位编译器:char 1个字节  char* 2个字节 int 4个字节 float 4个字节 double 8个字节
    

    19.10进制转8进制,手算用 除8取余数法得
    20.十进制转十六进制为:除十六取余直到商为0,余数从后往前读。
    21.%f代表单精度浮点型数据(float),%lf代表双精度浮点型数(double)。
    单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。
    22.sizeof可以看成是一个无符号整型表达式(sizeof为字节运算符)
    23.强制运算符:(类型名)(表达式) 逗号运算符:, 条件运算符::? :
    24. 赋值运算符左边必须是(一个)变量。
    25.a=bc,先运算bc,这个表达式的含义是,若b与c相等,那么得出的值为1,若不等则为0.
    26.“^” 按位异或 两数的二进制对应位相同,则为0,不同则为1.
    27.“|” 按位或 两个二进制中只要有一个为1,则结果为1。
    28.“~” 按位取反 二进制 0变1,1变0.
    29. “&”按位与 两个二进制都为1,则该位的结果为1,否则为零
    【 零的按位取反是 -1(0在数学界既不是正数也不是负数)
    所有正整数的按位取反是其本身+1的负数
    所有负整数的按位取反是其本身+1的绝对值 】
    30.位运算的对象只能是整形或字符型数据
    31.||逻辑或 前后条件只要有一个满足则为真。
    32.&&逻辑与 前后条件同时满足表达式为真。
    33.再用||的地方一般可以用|代替,但是用|的地方不能用||代替。
    34.“&”取地址运算
    35“”指针运算符
    36.p是指针变量,则&p是变量p的地址
    37.p是指针变量,则
    p是变量p所指向地址的值
    38.基类型不同的指针变量不可以相互混用
    39.函数的类型可以是指针类型
    40.函数的参数可以是整型、实型、字符型、指针类型。
    41.在这里插入图片描述

    42.C语言是一种计算机高级语言。
    43.C语言允许直接访问物理地址,能进行位操作。
    44.C语言是结构化程序设计语言
    45.c程序要通过编译,连接才能得到可执行的目标程序
    46.用c语言编写程序,可以编写出任何类型的程序
    47.C语言允许有空函数
    48.C程序书写格式,允许一行内可以写几个语句
    49.C程序的语句无行号(C语言中给源程序加行号;行号是用来定位代码的,指文件在几行)
    50.C语言的每个语句的最后必须有一个分号
    51.C语言本身没有输入输出语句(没有特定的输入输出语句)
    52.C语言可用来编写应用软件,也可用来编写系软件
    53.TurboC是在微机上广泛使用的编译程序
    54.C语言的数据结构是以数据类型形式出现的(不是常量和变量)
    55.空类型是C语言的一种数据类型
    56.C语言中数据有常量和变量之分
    57.利用指针和结构体类型可以构成表、树等复杂的数据结构
    58.在C程序中对所用到的所有数据都必须指定其数据类型
    59.c程序运行过程中,其值不能被改变的量称为常量
    60.在程序运行过程中,其值可以改变的量称为变量
    61.C语言可以用一个标识符代表一个常量,称为符号常量
    62.C语言规定标识符只能由字母、数字和下划线三种字符组成
    63.C语言整型常量可用十进制整数、八进整数和十六进制整数三种形式表示
    64.在现微机上使用的C编译系统,每一个整型变量在内存中占2个字节
    65.整型变量的基本类型符为int
    66.在微机上,一个长整型变量在内存中占4个字节(float型变量在内存中占4个字节)
    67.一个int型变量的最大允许值为32767
    68.在一个整常量后面加一个字母“L”或“1”.则认为该常量是longint 型常量
    69.C语言实型常量可用二进制小数和指数二种形式表示
    70.C语言实型变量分为:float型、double型、long double型三类
    71.C语言doule型一个变量的数值有效数字是16位
    72.C语言的字符常量是用单引号括起来的一个字符
    73.C语言的转义字符是以一个“\”开头的一种特殊形式的字符常量
    74.C语言中换行符使用’\n’,这是一个转义字符
    75.转文字符\r的含义是回车。
    76.C语言的字符型变量只能存放一个字符
    77.C语言允许字符数据与整数直接进行算术运算
    78.C语言允许在定义变量的同时使变量初始化
    79.C语言允许整型、实型、字符型数据间可以混合运算
    80.C语言规定两个整数相除的结果为整数
    81.用求余运算符“%”作运算,运算符两侧均应为整型数据
    82.用算术运算符和括号将运算对象按C语法规则组成的式子,称为C算术表达式
    83.算术运算符的结合方向为“自左至右”
    84.强制类型转换时,原来变量的类型未发生变化
    85.自增、自减运算符的结合方向为“自右至左”
    86.自增运算符只能用于变量,不能用于常量或表达式
    87指针.自增(减)运算符也可以用于指针变量,使指向下一个地址
    88.运算符“=”的作用是将一个数据赋给一个变量
    89.运算符“”的作用是将两侧数据是否相等
    90.赋运算符的结合方向是“自右向左”
    91.凡是二目运算符,都可以与赋值运算符一起组合成复合赋值运算符
    92.运算符“
    ”的作用是将一个数据赋给一个变量
    93.C语言不允许将实型数据赋给整型变量
    94.一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式
    95.一个C程序可以由若干个源程序文件组成
    96.一个源文件可以由若千个函数和预处理命令以及全局变量声明部分组成
    97.空语句是C语言的一种语句
    98.复合语句中最后一个语句中最后的分号不能省略不写
    99.putchar函数的作用是向终端输出一个字符
    100.getchar函数的作用是从终端输入一个字符
    101.格式输出函数(print)一次可以输出多个数据
    102.printf函数的%ld格式参数,用来输入出长整型数据
    103.printf函数的%o格式参数,用来以8进制数形式输出整数
    104.printf函数的%f格式参数,用来以小数形式输出实数
    105.printf函数的%x格式参数,可以输出指定参数的16进制形式
    106.printf函数的%s格式参数,用来输出一个字符串
    107.C语言不是面向对象的程序设计语言
    108.printf函数的%e格式参数,以指数形式输出实数
    109.C语言单精度数的有效数一般为7位
    110.printf函数的%g格式参数
    111.%g是C语言printf()函数的一个输出格式类型,它表示以%f%e中较短的输出宽度输出单、双精度实数,在指数小于-4或者大于等于精度时使用%e格式
    112.p++是指下一个地址。
    (p)++是指将p所指的数据的值加一。
    C编译器认为
    和++是同优先级操作符,且都是从右至左结合的,所以p++中的++只作用在p上,和(p++)意思一样;在(p)++中,由于()的优先级比和++都高,所以++作用在()内的表达式*p上。比如有:
    int x,y,a[]={1,2,3,4,5},*p=a,*q=a;
    x=*p++;//执行这一句后x=a[0]=1,p=a+1
    y=(*q)++;//执行这一句后,y=a[0]+1=2,q仍然=a
    113. printf函数的附加格式说明字符“m”的含义是指输出数据的最小宽度
    114.scanf函数中的“格式控制”后面应当是变量地址(不是变量符)
    115.逻辑运算符>算术运算符>关系运算符>条件运算符>赋值运算符(罗算管调幅)
    116.条件运算符的结合方向是“自右向左"
    117.if语中又包含文可以转在电百度网点电 平句的嵌套
    118.条件运算符要求有3个操作对象,称为三目运算符
    119.条件表达式中三个表达式的类型可以不同
    120.switch语句是多分支选择语句
    121.switch语句中每一个case的常量表达式的值必须互不相同
    122.switch语句执行完一个case后面的语句后,流程控制转移到下一个case继续执行
    123.switch语句中多个case可以共用组执行语句
    124.goto语句为无条件转向语句
    125.C语句的循环语句中循环体如果包含一个以上的语句,必须以复合语句形式出现bre
    126.for循环语句中的3个表达式都可以省略
    127.C语句的一个循环体内允许又包含另一个完整的循环结构
    128.break语句不能用于循环语句和switch语句之外的任何其它语句中
    129.continue语句的作用是结束本次循环(而不是终止整个循环)
    130.C数组中的每一个元素都必须属于同一个数据类型
    131.C数组必须先定义,然后使用
    132.C语言规定只能逐个引用数组元素而不能一次引用整个数组
    133.在定义一维数组时可以只给一部分元素赋初值
    134.对二维数组初始化,可以分行给数组赋初值
    135.可以对二维数组的部分元素赋初值
    136.字符数组中的一个元素只存放一个字符
    137.如果一个字符数组中包含一个以上结束符’\0”,则遇第一个’\0’时输出就结束
    138.puts函数的作用是将一个字符串输出终端
    139.gets丽数的作用是从终端输入一个字符串到字符数组
    140.strlen 函数是测试字符串长度的函数
    141
    strcat函数是“字符串复制函数”。X
    strcpy函数是“字符串连接函数”。X
    strcmp函数是“字符串复制函数”。X
    strlwr函数是测试字符串长度的函数。X
    strupr函数是测试字符串长度的函数。X
    142.C程序一个函数可以被一个或多个函数调用多次
    143.一个C程序可由一个主函数和若干个其它函数构成
    144.C程序以源程序为单位进行编译(而不是函数)
    145.C程序由一个或多个源程序文件组成
    146.C语言在定义函数时是互相独立的,不能嵌套定义
    147.在调用有参函数时,主调函数和被调用函数之间有数据传递关系
    148.在调用一个函数的过程中又出现直接或间接地调用该函数本身称为函数的递归调用
    149.在一个函数内部定义的变量是内部变量,称为局部变量
    150.在函数之外定义的变量称为外部变量,是全局变量
    151.从变量的作用域角度来分,可以分为全局变量和局部变量(而不是静态和动态变量)
    152.静态存储方式是指在程序运行期间分配固定的存储空间的方式
    153.存储方法分为两大类:静态存储类和动态存储类
    154.C语言允许将局部变量的值放在CPU中的寄存器中,这种变量称为“寄存器变量”
    155.局部静态变量不能定义为寄存器变量
    156.如果一个函数只能被本文件中其它函数所调用,称为内部函数
    157.C源程序中的预处理命令,它不是C语言本身的组成部分
    158.宏定义不是C语句,在行末不加分号
    159.宏定又是用宏名代替一个字符串,只作简单的置换,不作正确性检查
    160.在进行宏定义时,可以引用已定义的宏名
    161.宏替换不占程序运行时间,只占编译时间
    162.文件包含处理是指个源文件可以将另一个的全部内容含进来源文件包
    163.一个include命令只能指定一个被包含文件
    164.存放变量地址的变量是指针变量
    165.C语言中变量的指针就是变量的地址
    166.函数的参数也可以是指针变量
    167.指针变量可以指向变量,也可以指向数组和数组元素
    168.引用数组元素可以用下标法,也可以用指针法
    169.用指针变量可以指向一维数组,也可以指向多维数组,用指针变量也可以指向一个函数
    170.一个函数可以带回一个整型值、字符值或实型值,也可以带回指针型的数据
    171.指针数组中的每一个元素都相当于一个指针变量
    172.指针数组中的每一个元素都相当于一个整型变量
    173.指针变量可以有空值,即该指针变量不指向任何变量
    174.若两个指针指向同一个数组的元素。则两指针变量可以进行比较
    175.用户自己定义一个结构教型后们其中并无具体数据
    176.在程序中使用的可和百网时 定义结构体类型的变量
    177.结构体类型的成员也可以是一个结构体变量
    178.结构体成员名可以与程序中的变量名相同
    179.不能将一个结构体变量作为一个整体进行输入和输出
    180.对结构体变量的成员可以像普通变量一样进行各种运算
    181.可以引用结构体变量的地址
    182.可以引用结构体变量成员的地址
    183.结构体数组的每个元素都是一个个结构体类型的数据
    184.对结构体数组可以初始化,即赋初值
    185.可以定义一个指针变量,用来指向一个结构体变量
    186.指针可以用结构体变量作链表中的结点
    187.malloc函数的返回值是一个指向分配域起始地址的指针
    188.建立动态链表是指在程序执行过程中从无到有地建立起一个链表
    189.使几个不同的变量共占同一段内存的结构,称为共用体类型的结构
    190.共用体变量所占的内存长度等于最长的成员长度
    191.定义了共用体变量,只能引用共用体变量中的成员(不能引用公用体变量)
    192.共用体变量的地址和它的各成员的地址都是同一地址
    193.共用体类型可以出现在结构体类型定义中
    194.结构体类型可以出在共用体类型定义中
    195.在C编译中,对枚举元素按常量处理
    196.一个整数不能直接赋给一个枚举变量
    枚举类型在C#或C++,java,VB等一些计算机编程语言中是一种基本数据类型而不是构造数据类型,而在C语言等计算机编程语言中是一种构造数据类型 。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。
    枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。
    197.可以用typedef声明新的类型名来代替已有的类型名
    198.位运算的运算量只能是整型或字符型的数据
    200.位运算符与赋值运算符可以组成复合赋值运算符
    在 C 语言中, 一种方法是用叫做位段的构造类型来定义一个压缩信息的结构。
    201.已有定义int (*p)( );指针p可以指向函数的入口地址
    202.C语言中运算对象必须是整型的是%=
    203.int *p 表达的是p是指向int型数据的指针。
    204函数rewind的功能是将文件指针重新指向一个流的开头(即使文件指针重新返回文件的开始位置),int rewind(FILE *stream);并且无返值。
    205.如果函数值的类型与返回值类型不一致,以函数值类型为准
    206.c语言中形参和实参类型不一致时以形参的类型为准
    207.形参应该是函数声明的时候就已经定义好
    208.若有定义int t[3][2],能正确表达t数组元素地址的是–t[2]+1
    209.int[]={1,2};
    210.C语言中的循环语句有for,while,do-while和goto,,***不是if、switch、break
    211.不正确的赋值语句是—ch‘a+b’,正确的是ch=‘\0’ ch=‘7’+‘9’ ch=7+9
    212.正确的赋值语句x3=12;
    213.C语言逻辑运算时,0为假,非0为真
    214.字符串常量是以双引号扩起来的字符序列“a”(其他C语言常量‘\n’ 012)(e-2不是C语言常量----实数的指数形式中,e后面必须有一个整数)

    301.一个位段必须存储在同一存储单元中
    302.位段的长度不能大于存储单元的长度
    303.一个c程序由若干个函数构成,其中有且仅有一个主函数
    304.指针变量中存放的是它所指对象的地址
    305.在C语言中,分号是语句的必然组成部分
    306.结构体变量所占空间是各成员所占空间之和
    307.数据文件可顺序读取,也可借助文件的定位操作实现随机读取
    308.从用户的角度上讲,类型的含义是规定了该类型变量的取值范围和运算范围
    309.c语言中,变量和函数均具有类型和存贮类别两个属性
    340.顺序结构>选择结构>循环结构
    341.函数返回值的类型是由函数定义时指定的类型
    342.*与s[]相等
    343.当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数和整型数值等。
    344. getchar函数没有参数
    345.静态储存方式是在程序运行期间分配固定的储存方式的方式
    356.局部静态变量不能定义为寄存器变量
    357.不能把共用体变量作为函数的参数
    358.一个整数不能直接赋给一个枚举变量
    359.int *p=a 是对指针变量p的正确定义和初始化。
    360.Char s[]=”china”;
    Char p;
    P=s;
    p与s[]相等
    有int [],*p=a
    则p+5表示元素a[]的地址
    361.C语言中,退格符是\b
    362.C语言中,变量的隐含储存类别是auto
    363.实际参数和形式参数可以同名
    364.函数调用可以作为一个函数的形参
    365.结构化程序设计的3中结构是-顺序结构、选择结构、循环结构
    366.当从键盘输入数据时整型变量可以输出整型值和字符,对于实型变量可以输入实型数和整型数值
    367.C语言中逗号运算符的优先级最低,指针最优,单目运算优于双目运算。如正负号。
    先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
    逻辑运算最后结合。
    368.C语言区分定义变量名的大小写
    369.设有如下定义:
    struck sk
    { int a;
    float b;
    } data;
    int *p;
    若要使P指向data中的a域,正确的赋值语句是(C)A、 p=&a; B、 p=data.a; C、 p=&data.a; D、 *p=data.a;
    370.double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。
    371.设有以下说明语句:
    struct stu
    {
    int a;
    float b;
    }
    stutype;
    则下面叙述不正确的是( )。
    A) struct是结构体类型的关键字
    B) structstu是用户定义的结构体类型
    C) stutype是用户定义的结构体类型名
    D) a和b都是结构体成员名
    答案解析
    定义一个结构的一般形式为:
    struct结构体名
    {
    成员列表
    }变量名列表;
    本题中的stutype是在声明结构体类型structstu的同时定义的该结构体变量,而不是用户定义的结构体类型名。类型与变量是不同的概念; 2)对结构体中的成员,可以单独使用,它的作用与地位相当于普通变量;3)成员也可以是一个结构体变量; 4)成员名可以与程序中的变量名相同,二者不代表同一对象。
    372.C语言中的数据类型是指-函数返回值的数据类型
    373.C程序设计语言的基本成分是数据成分、运算成分、控制成分、传输成分。
    374.while(t=1)循环控制表达式的值为1。
    375.printf(++x);表示地址所连接的数值加1.
    376.int[3][4]; 表示a为3行
    4列的数组,它可用的最大行下标为2,列下标最大为3;
    若是引用a[0][4],则超过了数组的范围
    377.若有如下说明和定义
    struct test
    {
    int ml; char m2; float m3;
    union uu
    {
    char ul[5]; int u2[2];
    }
    ua;
    } myaa;
    则sizeof(struct test)
    的值是A.12 B.16 C.14 D.9
    正确答案:A
    在本题中,首先定义了一个结构体。在该结构体中,定义了一个整型变量成员、一个字符型变量成员和一个浮点型变量成员,并在结构体中定义了一个联合体变量成员,联合体变量成员中又包含两个联合体成员数组。题目最后要求计算该结构体变量所占的存储空间。
    在C语言中,联合体变量中的所有成员共享存储空间,联合变量的长度等于各成员中最长的长度,因此,本题的联合体部分所占的长度为5,但是结构体与联合体不一样的是,结构体不能共享空间,一个结构体变量的总长度是各成员长度之和,因此,该结构体所需的存储空间为5+1+2+4=12。本题的正确答案选A。
    378.静态储存类别的关键词是static
    379.C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。
    380.fseek(文件指针,位移量,起始点)
    “起始点”用0,1或2代替,0代表“文件开始”,1为“当前位置”,2为“文件末尾”。“位移量”指以“起始点”为基点,向前移动的字节数。ANSIC和大多数C版本要求位移量是long型数据。这样当文件的长度大于 64k时不致出现问题。ANSI C标准规定在数字的末尾加一个字母L,就表示long型。
    381.若有定义:int (*p)[4];则标识符p ,是一个指针指向一个含有四个整形元素的一维数组。
    382.基本数据类型:整型、实型、字符型
    383.EOF是指向文本文件的结束标志,NULL是打开文件错误时的返回值。feof(fp)用来判断文件是否在文件末尾,文本文件和二进制文件均可以使用此函数,如果遇到文件结束就返回1,否则返回0。
    384.C语言的函数可以嵌套调用
    385.标准库函数fgets(s,n,f)的功能是什么–从文件f中读取长度不超过n-1的字符串存入指针s所指的内存。
    从流中读一行或指定个字符,
    原型是char *fgets(char *s, int n, FILE *stream);
    从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。
    形参注释:*string结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针
    说得简单一点就是从f这个文件输入流中读取n-1个字符,存到s中。
    如果一行的字符数小于n-1,那么就是一行的字符数,所以应该理解为不超过n-1,如果一行的长度大于n-1,就是n-1个字符
    386.
    1、数据计算类型不同。基本数据类型分为三类:整数型(定点型)、实数型(浮点型)和字符型。除了基本数据类型,还有构造类型(数组、结构体、共用体、枚举类型)、指针类型、空类型void。
    2、各种数据类型的关键词不同。short、long、int、float、double、char六个关键词表示C语言里六种基本数据类型。
    3、不同数据类型占用内存的大小不同。short占2byte,int占4byte,long占4byte,float占2byte,double占8byte,char占1byte(不同的平台可能占用内存大小不一样,具体的可以用sizeof 测试下)。
    387.一个可以没有变量定义和执行部分,例如空函数

    展开全文
  • 关键词抽取策略研究

    2020-06-20 22:57:06
    该方法根据关键词在文中出现位置的分布特性,计算并提取出新的间距特征,更加适用于当下网络文本随意多变的写作方式,同时考虑影响关键词识别的各个因素,通过多个特征的提取与结合,改善了一般位置特征传统统计方法的...
  • 动词时态的句子结构关键词.doc
  • NLP关键词提取方法总结及实现

    万次阅读 多人点赞 2019-07-23 21:09:41
    一、关键词提取概述 二、TF-IDF关键词提取算法及实现 三、TextRank关键词提取算法实现 四、LDA主题模型关键词提取算法及实现 五、Word2Vec词聚类的关键词提取算法及实现 六、信息增益关键词提取算法及实现 七...

    目录

    一、关键词提取概述

    二、TF-IDF关键词提取算法及实现

    三、TextRank关键词提取算法实现

    四、LDA主题模型关键词提取算法及实现

    五、Word2Vec词聚类的关键词提取算法及实现

    六、信息增益关键词提取算法及实现

    七、互信息关键词提取算法及实现

    八、卡方检验关键词提取算法及实现

    九、基于树模型的关键词提取算法及实现

    十、总结


    一、关键词提取概述

    关键词是能够表达文档中心内容的词语,常用于计算机系统标引论文内容特征、信息检索、系统汇集以供读者检阅。关键词提取是文本挖掘领域的一个分支,是文本检索、文档比较、摘要生成、文档分类和聚类等文本挖掘研究的基础性工作。

    从算法的角度来看,关键词提取算法主要有两类:无监督关键词提取方法有监督关键词提取方法

    1、无监督关键词提取方法

    不需要人工标注的语料,利用某些方法发现文本中比较重要的词作为关键词,进行关键词提取。该方法是先抽取出候选词,然后对各个候选词进行打分,然后输出topK个分值最高的候选词作为关键词。根据打分的策略不同,有不同的算法,例如TF-IDF,TextRank,LDA等算法。

    无监督关键词提取方法主要有三类:基于统计特征的关键词提取(TF,TF-IDF);基于词图模型的关键词提取(PageRank,TextRank);基于主题模型的关键词提取(LDA)

    • 基于统计特征的关键词提取算法的思想是利用文档中词语的统计信息抽取文档的关键词;
    • 基于词图模型的关键词提取首先要构建文档的语言网络图,然后对语言进行网络图分析,在这个图上寻找具有重要作用的词或者短语,这些短语就是文档的关键词;
    • 基于主题关键词提取算法主要利用的是主题模型中关于主题分布的性质进行关键词提取;

    2、有监督关键词提取方法

    将关键词抽取过程视为二分类问题,先提取出候选词,然后对于每个候选词划定标签,要么是关键词,要么不是关键词,然后训练关键词抽取分类器。当新来一篇文档时,提取出所有的候选词,然后利用训练好的关键词提取分类器,对各个候选词进行分类,最终将标签为关键词的候选词作为关键词。

    3、无监督方法和有监督方法优的缺点

    无监督方法不需要人工标注训练集合的过程,因此更加快捷,但由于无法有效综合利用多种信息 对候选关键词排序,所以效果无法与有监督方法媲美;而有监督方法可以通过训练学习调节多种信息对于判断关键词的影响程度,因此效果更优,有监督的文本关键词提取算法需要高昂的人工成本,因此现有的文本关键词提取主要采用适用性较强的无监督关键词提取。

    4、关键词提取常用工具包

    二、TF-IDF关键词提取算法及实现

    TF-IDF算法的详细介绍及实现方法总结参看博客:TF-IDF算法介绍及实现

    三、TextRank关键词提取算法实现

    TextRank算法的详细介绍及实现方法总结参看博客:TextRank算法介绍及实现

    四、LDA主题模型关键词提取算法及实现

    1、LDA(Latent Dirichlet Allocation)文档主题生成模型

    主题模型是一种统计模型用于发现文档集合中出现的抽象“主题”。主题建模是一种常用的文本挖掘工具,用于在文本体中发现隐藏的语义结构。

    LDA也称三层贝叶斯概率模型,包含词、主题和文档三层结构;利用文档中单词的共现关系来对单词按主题聚类,得到“文档-主题”和“主题-单词”2个概率分布。

    通俗理解LDA主题模型原理

    2、基于LDA主题模型的关键词提取算法实现

    from gensim import corpora, models
    import jieba.posseg as jp
    import jieba
    
    
    # 简单文本处理
    def get_text(text):
        flags = ('n', 'nr', 'ns', 'nt', 'eng', 'v', 'd')  # 词性
        stopwords = ('的', '就', '是', '用', '还', '在', '上', '作为')  # 停用词
        words_list = []
        for text in texts:
            words = [w.word for w in jp.cut(text) if w.flag in flags and w.word not in stopwords]
            words_list.append(words)
        return words_list
    
    
    # 生成LDA模型
    def LDA_model(words_list):
        # 构造词典
        # Dictionary()方法遍历所有的文本,为每个不重复的单词分配一个单独的整数ID,同时收集该单词出现次数以及相关的统计信息
        dictionary = corpora.Dictionary(words_list)
        print(dictionary)
        print('打印查看每个单词的id:')
        print(dictionary.token2id)  # 打印查看每个单词的id
    
        # 将dictionary转化为一个词袋
        # doc2bow()方法将dictionary转化为一个词袋。得到的结果corpus是一个向量的列表,向量的个数就是文档数。
        # 在每个文档向量中都包含一系列元组,元组的形式是(单词 ID,词频)
        corpus = [dictionary.doc2bow(words) for words in words_list]
        print('输出每个文档的向量:')
        print(corpus)  # 输出每个文档的向量
    
        # LDA主题模型
        # num_topics -- 必须,要生成的主题个数。
        # id2word    -- 必须,LdaModel类要求我们之前的dictionary把id都映射成为字符串。
        # passes     -- 可选,模型遍历语料库的次数。遍历的次数越多,模型越精确。但是对于非常大的语料库,遍历太多次会花费很长的时间。
        lda_model = models.ldamodel.LdaModel(corpus=corpus, num_topics=2, id2word=dictionary, passes=10)
    
        return lda_model
    
    
    if __name__ == "__main__":
        texts = ['作为千元机中为数不多拥有真全面屏的手机,OPPO K3一经推出,就簇拥不少粉丝', \
                 '很多人在冲着这块屏幕购买了OPPO K3之后,发现原来K3的过人之处不止是在屏幕上', \
                 'OPPO K3的消费者对这部手机总体还是十分满意的', \
                 '吉利博越PRO在7月3日全新吉客智能生态系统GKUI19发布会上正式亮相', \
                 '今年上海车展,长安CS75 PLUS首次亮相', \
                 '普通版车型采用的是双边共双出式排气布局;运动版本车型采用双边共四出的排气布局']
        # 获取分词后的文本列表
        words_list = get_text(texts)
        print('分词后的文本:')
        print(words_list)
    
        # 获取训练后的LDA模型
        lda_model = LDA_model(words_list)
    
        # 可以用 print_topic 和 print_topics 方法来查看主题
        # 打印所有主题,每个主题显示5个词
        topic_words = lda_model.print_topics(num_topics=2, num_words=5)
        print('打印所有主题,每个主题显示5个词:')
        print(topic_words)
    
        # 输出该主题的的词及其词的权重
        words_list = lda_model.show_topic(0, 5)
        print('输出该主题的的词及其词的权重:')
        print(words_list)
    

    运行结果:

    五、Word2Vec词聚类的关键词提取算法及实现

    1、Word2Vec词向量表示

    利用浅层神经网络模型自动学习词语在语料库中的出现情况,把词语嵌入到一个高维的空间中,通常在100-500维,在高维空间中词语被表示为词向量的形式。

    特征词向量的抽取是基于已经训练好的词向量模型。

    2、K-means聚类算法

    聚类算法旨在数据中发现数据对象之间的关系,将数据进行分组,使得组内的相似性尽可能的大,组间的相似性尽可能的小。

    算法思想是:首先随机选择K个点作为初始质心,K为用户指定的所期望的簇的个数,通过计算每个点到各个质心的距离,将每个点指派到最近的质心形成K个簇,然后根据指派到簇的点重新计算每个簇的质心,重复指派和更新质心的操作,直到簇不发生变化或达到最大的迭代次数则停止。

    3、基于Word2Vec词聚类关键词提取方法的实现过程

    主要思路是对于用词向量表示的词语,通过K-Means算法对文章中的词进行聚类,选择聚类中心作为文本的一个主要关键词,计算其他词与聚类中心的距离即相似度,选择topK个距离聚类中心最近的词作为关键词,而这个词间相似度可用Word2Vec生成的向量计算得到。

    具体步骤如下:

    • 对语料进行Word2Vec模型训练,得到词向量文件;
    • 对文本进行预处理获得N个候选关键词;
    • 遍历候选关键词,从词向量文件中提取候选关键词的词向量表示;
    • 对候选关键词进行K-Means聚类,得到各个类别的聚类中心(需要人为给定聚类的个数);
    • 计算各类别下,组内词语与聚类中心的距离(欧几里得距离或曼哈顿距离),按聚类大小进行降序排序;
    • 对候选关键词计算结果得到排名前TopK个词语作为文本关键词。
       

    :第三方工具包Scikit-learn提供了K-Means聚类算法的相关函数,本文用到了sklearn.cluster.KMeans()函数执行K-Means算法,sklearn.decomposition.PCA()函数用于数据降维以便绘制图形。

    六、信息增益关键词提取算法及实现

    信息增益算法的详细介绍及实现方法总结参看博客:信息增益算法介绍及实现

    七、互信息关键词提取算法及实现

    1、互信息(Mutual Information,MI)

    在概率论和信息论中,两个随机变量的互信息或转移信息(transinformation)是变量间相互依赖性的量度。不同于相关系数,互信息并不局限于实值随机变量,它更加一般且决定着联合分布 p(X,Y) 和分解的边缘分布的乘积 p(X)p(Y) 的相似程度。互信息是度量两个事件集合之间的相关性(mutual dependence)。

    互信息被广泛用于度量一些语言现象的相关性。在信息论中,互信息常被用来衡量两个词的相关度,也用来计算词与类别之间的相关性。

    2、互信息计算公式

     3、互信息算法实现

    from sklearn import metrics
    import numpy as np
    
    # 训练集和训练标签
    x_train = [[1, 2, 3, 4, 5],
               [5, 4, 3, 2, 1],
               [3, 3, 3, 3, 3],
               [1, 1, 1, 1, 1]]
    y_train = [0, 1, 0, 1]
    # 测试集和测试标签
    x_test = [[2, 2, 2, 2, 2], [2, 1, 1, 2, 1]]
    
    x_train = np.array(x_train)  # 转为array
    
    # 存储每个特征与标签相关性得分
    features_score_list = []
    for i in range(len(x_train[0])):
        # 计算每个特征与标签的互信息
        feature_info = metrics.mutual_info_score(y_train, x_train[:, i])
        features_score_list.append(feature_info)
    
    print(features_score_list)
    

    运行结果: 

    4、信息论中的互信息和决策树中的信息增益的关系 

    两者表达意思是一样的,都是表示得知特征 X 的信息而使得类 Y 的信息的不确定性减少的程度。

    注:

    • 标准化互信息(Normalized Mutual Information,NMI)可以用来衡量两种聚类结果的相似度。
    • 标准化互信息Sklearn实现:metrics.normalized_mutual_info_score(y_train, x_train[:, i])。
    • 点互信息(Pointwise Mutual Information,PMI)这个指标来衡量两个事物之间的相关性(比如两个词)。

    八、卡方检验关键词提取算法及实现

    1、卡方检验

    卡方是数理统计中用于检验两个变量独立性的方法,是一种确定两个分类变量之间是否存在相关性的统计方法,经典的卡方检验是检验定性自变量对定性因变量的相关性。

    2、基本思路

    • 原假设:两个变量是独立的
    • 计算实际观察值和理论值之间的偏离程度
    • 如果偏差足够小,小于设定阈值,就接受原假设;否则就否定原假设,认为两变量是相关的。

    3、计算公式

    其中,A为实际值,T为理论值。卡方检验可用于文本分类问题中的特征选择,此时不需要设定阈值,只关心找到最为相关的topK个特征。基本思想:比较理论频数和实际频数的吻合程度或者拟合优度问题。

    4、基于sklearn的卡方检验实现

    from sklearn.feature_selection import SelectKBest
    from sklearn.feature_selection import chi2
    
    # 训练集和训练标签
    x_train = [[1, 2, 3, 4, 5],
               [5, 4, 3, 2, 1],
               [3, 3, 3, 3, 3],
               [1, 1, 1, 1, 1]]
    y_train = [0, 1, 0, 1]
    # 测试集和测试标签
    x_test = [[2, 2, 2, 2, 2], [2, 1, 1, 2, 1]]
    y_test = [1, 1]
    
    # 卡方检验选择特征
    chi2_model = SelectKBest(chi2, k=3)  # 选择k个最佳特征
    # 该函数选择训练集里的k个特征,并将训练集转化所选特征
    x_train_chi2 = chi2_model.fit_transform(x_train, y_train)
    # 将测试集转化为所选特征
    x_test_chi2 = chi2_model.transform(x_test)
    
    print('各个特征的得分:', chi2_model.scores_)
    print('各个特征的p值:', chi2_model.pvalues_)  # p值越小,置信度越高,得分越高
    print('所选特征的索引:', chi2_model.get_support(True))
    print('特征提取转换后的训练集和测试集...')
    print('x_train_chi2:', x_train_chi2)
    print('x_test_chi2:', x_test_chi2)

    运行结果:

    九、基于树模型的关键词提取算法及实现

    1、树模型

    主要包括决策树和随机森林,基于树的预测模型(sklearn.tree 模块和 sklearn.ensemble 模块)能够用来计算特征的重要程度,因此能用来去除不相关的特征(结合 sklearn.feature_selection.SelectFromModel)

    sklearn.ensemble模块包含了两种基于随机决策树的平均算法:RandomForest算法Extra-Trees算法。这两种算法都采用了很流行的树设计思想:perturb-and-combine思想。这种方法会在分类器的构建时,通过引入随机化,创建一组各不一样的分类器。这种ensemble方法的预测会给出各个分类器预测的平均。

    • RandomForests 在随机森林(RF)中,该ensemble方法中的每棵树都基于一个通过可放回抽样(boostrap)得到的训练集构建。另外,在构建树的过程中,当split一个节点时,split的选择不再是对所有features的最佳选择。相反的,在features的子集中随机进行split反倒是最好的split方式。sklearn的随机森林(RF)实现通过对各分类结果预测求平均得到,而非让每个分类器进行投票(vote)。
    • Ext-Trees 在Ext-Trees中(详见ExtraTreesClassifier和 ExtraTreesRegressor),该方法中,随机性在划分时会更进一步进行计算。在随机森林中,会使用侯选feature的一个随机子集,而非查找最好的阈值,对于每个候选feature来说,阈值是抽取的,选择这种随机生成阈值的方式作为划分原则。

    2、树模型的关键词提取算法实现

    (1)部分代码实现1

    from sklearn.tree import DecisionTreeClassifier
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.ensemble import ExtraTreesClassifier
    from sklearn.feature_selection import SelectFromModel
    
    # 导入SelectFromModel结合ExtraTreesClassifier计算特征重要性,并按重要性阈值选择特征。
    # 基于树模型进行模型选择
    clf_model = ExtraTreesClassifier(n_estimators=250, random_state=0)
    clf_model.fit(x_train, y_train)
    # 获取每个词的特征权重,数值越高特征越重要
    importances = clf_model.feature_importances_
    # 选择特征重要性为1.5倍均值的特征
    model = SelectFromModel(clf_model, threshold='1.5*mean', prefit=True)
    x_train_new = model.transform(x_train)  # 返回训练集所选特征
    x_test_new = model.transform(x_test)  # 返回测试集所选特征
    

    (2)部分代码实现2

    # 训练集和训练标签
    x_train, y_train
    # 候选特征词列表
    words_list
    
    # 基于树模型进行模型选择
    forest = RandomForestClassifier(n_estimators=250, random_state=0)
    forest.fit(x_train, y_train)
    importances = forest.feature_importances_  # 获取每个词的特征权重
    
    # 将词和词的权重存入字典
    feature_words_dic = {}
    for i in range(len(words_list)):
        feature_words_dic[words_list[i]] = importances[i]
    
    # 对字典按权重由大到小进行排序
    words_info_dic_sort = sorted(words_info_dic.items(), key=lambda x: x[1], reverse=True)
    
    # 将关键词和词的权重分别存入列表
    keywords_list = []  # 关键词列表
    features_list = []  # 关键权重列表
    for word in words_info_dic_sort:
        keywords_list.append(word[0])
        features_list.append(word[1])
    
    # 选取前一千个关键词和权重写入文本文件
    keywords = keywords_list[:1000]
    features = features_list[:1000]
    
    # 将含有关键字的文本写入文件
    with open('data/keywords_features.txt', 'a', encoding="utf-8") as f:
        for i in range(len(keywords)):
            f.write(keywords[i] + '\t' + features[i] + '\n')

    十、总结

    本文总结了本人在实验过程中所用到的常用关键词抽取方法,实验数据是基于公司的内部数据,但此篇总结只是方法上的讲解和实现,没有针对某一具体数据集做相应的结果分析。从实验中可以很明显看出有监督关键词抽取方法通常会显著好于无监督方法,但是有监督方法依赖一定规模的标注数据。

     

     

    参考:

    1、NLP关键词抽取常见算法

    2、gensim models.ldamodel

    3、卡方检验原理及应用

    4、特征选择 (feature_selection)

    5、随机森林算法总结及调参

    6、句子相似度计算

    展开全文
  • 行业分类-物理装置-一种基于网络高阶结构和主题模型融合的关键词抽取方法.zip
  • 关键词排名查询系统系统结构:关键词显示,去除空白关键字, ======窗口程序集1 || ||------关键词显示 || ||------__启动窗口_创建完毕 || ||------_按钮添加_被单击 || ||------_列表框1_列表项被选择
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    -p:通知login保持现在的环境参数。 -h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。 一般界面是这样的: Manddrake Linux release 9.1...
  • 本期关键词:新能源汽车 结构性走强.pdf
  • 基于关键词密度与结构的自动摘要研究,李洪岩,刘瑞芳,对文章生成自动摘要是一种重要的文本处理技术。自动生成摘要将文本中最有用的一部分信息呈现出来,便于大家浏览判断,所以是一
  • 易语言百度关键词查询源码系统结构:开始查询,百度下拉,百度相关,取UTF_8_URL编码,取GBK_URL编码,取中间文本, ======窗口程序集1 || ||------__启动窗口_创建完毕 || ||------_按钮1_被单击 || ||--
  • C++Primer Plus第6版&C Primer Plus第6版 中文版免费分享啦

    万次阅读 多人点赞 2019-10-06 17:48:03
    ,讲解了包含结构化代码自顶向下设计在内的程序设计原则。 作者把基础的编程概念与C语言的细节很好地融合在一起,并通过大量短小精悍的示例同时演示一两个概念,通过学以致用的方式鼓励读者掌握新的主题。每章...
  • 基于关键词聚类节点距离的网页信息抽取.pdf
  • 前端标签SEO优化

    千次阅读 2019-12-29 19:25:21
    SEO是什么,SEO的工作原理啥的,我就不废话了。进入正题:页面标签对于SEO的优化。 一、前端SEO要点 ...3. 网站目录结构不宜过深,否则不利于搜索引擎抓取。 4.页面关键词密度控制在2%~8%之间为宜。 ...
  • 给网站选择关键词很简单,不懂SEO的人也会,以前做SEO排名服务的时候,就经常有客户噼里啪啦倒出一大堆关键词让我报价。但是结合网站具体情况,选择最佳的关键词就不是谁都能做到的,必须要有一定的SEO经验才行。 ...
  • 一、场景 搜索引擎的搜索关键词提示功能...现在主流的搜索引擎,他们的关键词提示功能非常全面精确,肯定做了很多优化,但最基本的原理是用了数据结构:Trie 树。 Trie 树 ,也叫“字典树”。顾名思义,它是一个树...
  • 基于51单片机的交通灯控制系统设计

    万次阅读 多人点赞 2018-11-24 13:38:11
    运用单片机AT89C51进行数据的分析处理,为显示提供信号,显示部分采用8位数码管显示倒计时值。系统电路简单、集成度高、工作稳定、调试方便、检测精度高,具有一定的实用价值。 【关键词】AT89C51 8位数码管 发光...
  • 网站关键词提取工具易语言源码系统结构:网页访问_对象,高级延迟,网页访问_底层,文本_取出中间文本,网页访问_自动转码,编码_URL编码,编码_URL解码,编码_utf8到gb2312,编码_gb2312到utf8,Ansi到
  • 基于聚类和关键词提取的软件缺陷分析方法.pdf
  • 一种基于图聚类的关键词自动提取方法.pdf
  • 基于关键词重要性近邻传播聚类的主题分析研究.pdf
  • HanLP是由一系列模型与算法组成的工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构...提供词法分析(中文分词、词性标注、命名实体识别)、句法分析、文本分类情感分析等功能。
  • 蒙古文词网生成系统,是根据WordNet词网所建立的,在用户输入关键词后可以进行选择词网树的根部级别底部级别,然后系统会根据用户的输入,再依托大量的算法,在数据库中生成该关键词的词网二叉树结构,最后以树状...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 162,364
精华内容 64,945
关键字:

一般现在时关键词和结构