深度解析NLP文本摘要技术:定义、应用与PyTorch实战
目录
- 1. 概述
- 1.1 什么是文本摘要?
- 1.2 为什么需要文本摘要?
- 2. 发展历程
- 2.1 早期技术
- 2.2 统计方法的崛起
- 2.3 深度学习的应用
- 2.4 文本摘要的演变趋势
- 3. 主要任务
- 3.1 单文档摘要
- 3.2 多文档摘要
- 3.3 信息性摘要 vs. 背景摘要
- 3.4 实时摘要
- 4. 主要类型
- 4.1 抽取式摘要
- 4.2 生成式摘要
- 4.3 指示性摘要
- 4.4 信息性摘要
- 5. 抽取式文本摘要
- 5.1 定义
- 5.2 抽取式摘要的主要技术
- 5.3 Python实现
- 6. 生成式文本摘要
- 6.1 定义
- 6.2 主要技术
- 6.3 PyTorch实现
- 7. 总结
在本文中,我们深入探讨了自然语言处理中的文本摘要技术,从其定义、发展历程,到其主要任务和各种类型的技术方法。文章详细解析了抽取式、生成式摘要,并为每种方法提供了PyTorch实现代码。最后,文章总结了摘要技术的意义和未来的挑战,强调了其在信息过载时代的重要性。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
1. 概述
文本摘要是自然语言处理(NLP)的一个重要分支,其核心目的是提取文本中的关键信息,生成简短、凝练的内容摘要。这不仅有助于用户快速获取信息,还能有效地组织和归纳大量的文本数据。
1.1 什么是文本摘要?
文本摘要的目标是从一个或多个文本源中提取主要思想,创建一个短小、连贯且与原文保持一致性的描述性文本。
例子: 假设有一篇新闻文章,描述了一个国家领导人的访问活动,包括他的行程、会面的外国领导人和他们讨论的议题。文本摘要的任务可能是生成一段如下的摘要:“国家领导人A于日期B访问了国家C,并与领导人D讨论了E议题。”
1.2 为什么需要文本摘要?
随着信息量的爆炸性增长,人们需要处理的文本数据量也在快速增加。文本摘要为用户提供了一个高效的方法,可以快速获取文章、报告或文档的核心内容,无需阅读整个文档。
例子: 在学术研究中,研究者们可能需要查阅数十篇或数百篇的文献来撰写文献综述。如果每篇文献都有一个高质量的文本摘要,研究者们可以迅速了解每篇文献的主要内容和贡献,从而更加高效地完成文献综述的撰写。
文本摘要的应用场景非常广泛,包括但不限于新闻摘要、学术文献摘要、商业报告摘要和医学病历摘要等。通过自动化的文本摘要技术,不仅可以提高信息获取的效率,还可以在多种应用中带来巨大的商业价值和社会效益。
2. 发展历程
文本摘要的历史可以追溯到计算机科学和人工智能的早期阶段。从最初的基于规则的方法,到现今的深度学习技术,文本摘要领域的研究和应用都取得了长足的进步。
2.1 早期技术
在计算机科学早期,文本摘要主要依赖基于规则和启发式的方法。这些方法主要根据特定的关键词、短语或文本的句法结构来提取关键信息。
例子: 假设在一个新闻报道中,频繁出现的词如“总统”、“访问”和“协议”可能会被认为是文本的关键内容。因此,基于这些关键词,系统可能会从文本中选择包含这些词的句子作为摘要的内容。
2.2 统计方法的崛起
随着统计学方法在自然语言处理中的应用,文本摘要也开始利用TF-IDF、主题模型等技术来自动生成摘要。这些方法在某种程度上改善了摘要的质量,使其更加接近人类的思考方式。
例子: 通过TF-IDF权重,可以识别出文本中的重要词汇,然后根据这些词汇的权重选择句子。例如,在一篇关于环境保护的文章中,“气候变化”和“可再生能源”可能具有较高的TF-IDF权重,因此包含这些词汇的句子可能会被选为摘要的一部分。
2.3 深度学习的应用
近年来,随着深度学习技术的发展,尤其是**循环神经网络(RNN)和变压器(Transformers)**的引入,文本摘要领域得到了革命性的提升。这些技术能够捕捉文本中的深层次语义关系,生成更为流畅和准确的摘要。
例子: 使用BERT或GPT等变压器模型进行文本摘要,模型不仅仅是根据关键词进行选择,而是可以理解文本的整体含义,并生成与原文内容一致但更为简洁的摘要。
2.4 文本摘要的演变趋势
文本摘要的方法和技术持续在进化。目前,研究的焦点包括多模态摘要、交互式摘要以及对抗生成网络在摘要生成中的应用等。
例子: 在一个多模态摘要任务中,系统可能需要根据给定的文本和图片生成一个摘要。例如,对于一个报道某项体育赛事的文章,系统不仅需要提取文本中的关键信息,还需要从与文章相关的图片中提取重要内容,将二者结合生成摘要。
3. 主要任务
文本摘要作为自然语言处理的一部分,其主要任务涉及多个方面,旨在满足不同的应用需求。以下是文本摘要中的几个关键任务,以及相关的定义和示例。
3.1 单文档摘要
这是文本摘要的最基本形式,从一个给定的文档中提取关键信息,生成一个简洁的摘要。
定义: 对一个单独的文档进行处理,提取其核心信息,生成一个凝练的摘要。
例子: 从一篇关于某地震事件的新闻报道中提取关键信息,生成摘要:“日期X,在Y地区发生了Z级地震,导致A人受伤,B人死亡。”
3.2 多文档摘要
该任务涉及从多个相关文档中提取和整合关键信息,生成一个综合摘要。
定义: 对一组相关的文档进行处理,合并它们的核心信息,生成一个综合的摘要。
例子: 从五篇关于同一项技术大会的报道中提取关键信息,生成摘要:“在日期X的技术大会上,公司Y、Z和W分别发布了他们的最新产品,并讨论了未来技术的发展趋势。”
3.3 信息性摘要 vs. 背景摘要
信息性摘要重点关注文档中的主要新闻或事件,而背景摘要则关注为读者提供背景或上下文信息。
定义: 信息性摘要提供文档的核心内容,而背景摘要提供与该内容相关的背景或上下文信息。
例子:
- 信息性摘要:“国家A和国家B签署了贸易协议。”
- 背景摘要:“国家A和国家B自去年开始进行贸易谈判,旨在增加两国间的商品和服务交易。”
3.4 实时摘要
这是一种生成动态摘要的任务,特别是当信息源持续更新时。
定义: 根据不断流入的新信息,实时地更新并生成摘要。
例子: 在一项体育赛事中,随着比赛的进行,系统可以实时生成摘要,如:“第一节结束,队伍A领先队伍B 10分。队伍A的球员C已经得到15分。”
4. 主要类型
文本摘要可以根据其生成方式和特点划分为多种类型。以下是文本摘要领域中的主要类型及其定义和示例。
4.1 抽取式摘要
这种类型的摘要直接从原文中提取句子或短语来构成摘要,而不生成新的句子。
定义: 直接从原始文档中选择性地提取句子或短语,以生成摘要。
例子:
原文: “北京是中国的首都。它有着悠久的历史和丰富的文化遗产。故宫、长城和天安门都是著名的旅游景点。”
抽取式摘要: “北京是中国的首都。故宫、长城和天安门都是著名的旅游景点。”
4.2 生成式摘要
与抽取式摘要不同,生成式摘要会产生新的句子,为读者提供更为简洁和流畅的文本摘要。
定义: 基于原始文档的内容,生成新的句子来构成摘要。
例子:
原文: “北京是中国的首都。它有着悠久的历史和丰富的文化遗产。故宫、长城和天安门都是著名的旅游景点。”
生成式摘要: “北京,中国的首都,以其历史遗迹如故宫、长城和天安门而闻名。”
4.3 指示性摘要
这种类型的摘要旨在提供文档的大致内容,通常较为简短。
定义: 对文档进行快速概括,给出主要内容的简短描述。
例子:
原文: “微软公司是一家总部位于美国的跨国技术公司。它是世界上最大的软件制造商,并且生产多种消费电子产品。”
指示性摘要: “微软是一家大型的美国技术公司,生产软件和消费电子。”
4.4 信息性摘要
这种摘要提供更详细的信息,通常较长,涵盖文档的多个方面。
定义: 提供文档的详细内容概括,涵盖文档的核心信息。
例子:
原文: “微软公司是一家总部位于美国的跨国技术公司。它是世界上最大的软件制造商,并且生产多种消费电子产品。”
信息性摘要: “位于美国的微软公司是全球最大的软件生产商,同时还制造了多种消费电子产品。”
5. 抽取式文本摘要
抽取式文本摘要方法通过从原始文档中直接提取句子或短语来形成摘要,而不重新构造新的句子。
5.1 定义
定义: 抽取式文本摘要是从原始文档中选择性地提取句子或短语以生成摘要的过程。该方法通常依赖于文档中句子的重要性评分。
例子:
原文: “北京是中国的首都。它有着悠久的历史和丰富的文化遗产。故宫、长城和天安门都是著名的旅游景点。”
抽取式摘要: “北京是中国的首都。故宫、长城和天安门都是著名的旅游景点。”
5.2 抽取式摘要的主要技术
- 基于统计:使用词频、逆文档频率等统计方法为文档中的句子分配重要性分数。
- 基于图:如TextRank算法,将句子视为图中的节点,基于它们之间的相似性建立边,并通过迭代过程为每个句子分配得分。
5.3 Python实现
下面是一个简单的基于统计的抽取式摘要的Python实现:
import re
from collections import defaultdict
from nltk.tokenize import word_tokenize, sent_tokenizedef extractive_summary(text, num_sentences=2):# 1. Tokenize the textwords = word_tokenize(text.lower())sentences = sent_tokenize(text)# 2. Compute word frequenciesfrequency = defaultdict(int)for word in words:if word.isalpha(): # ignore non-alphabetic tokensfrequency[word] += 1# 3. Rank sentencesranked_sentences = sorted(sentences, key=lambda x: sum([frequency[word] for word in word_tokenize(x.lower())]), reverse=True)# 4. Get the top sentencesreturn ' '.join(ranked_sentences[:num_sentences])# Test
text = "北京是中国的首都。它有着悠久的历史和丰富的文化遗产。故宫、长城和天安门都是著名的旅游景点。"
print(extractive_summary(text))
输入:原始文本
输出:抽取的摘要
处理过程:该代码首先计算文档中每个词的频率,然后根据其包含的词频为每个句子分配重要性得分,并返回得分最高的句子作为摘要。
6. 生成式文本摘要
与直接从文档中提取句子的抽取式摘要方法不同,生成式文本摘要旨在为原始文档内容生成新的、更简洁的表达。
6.1 定义
定义: 生成式文本摘要涉及利用原始文档内容创造新的句子和短语,为读者提供更为简洁且相关的信息。
例子:
原文: “北京是中国的首都。它有着悠久的历史和丰富的文化遗产。故宫、长城和天安门都是著名的旅游景点。”
生成式摘要: “北京,中国的首都,以其历史遗迹如故宫、长城和天安门而闻名。”
6.2 主要技术
- 序列到序列模型 (Seq2Seq):这是一种深度学习方法,通常用于机器翻译任务,但也被广泛应用于生成式摘要。
- 注意力机制:在Seq2Seq模型中加入注意力机制可以帮助模型更好地关注原始文档中的重要部分。
6.3 PyTorch实现
下面是一个简单的Seq2Seq模型的概述,由于其复杂性,这里只提供一个简化版本:
import torch
import torch.nn as nnclass Encoder(nn.Module):def __init__(self, input_dim, emb_dim, hidden_dim):super(Encoder, self).__init__()self.embedding = nn.Embedding(input_dim, emb_dim)self.rnn = nn.GRU(emb_dim, hidden_dim)def forward(self, src):embedded = self.embedding(src)outputs, hidden = self.rnn(embedded)return hiddenclass Decoder(nn.Module):def __init__(self, output_dim, emb_dim, hidden_dim):super(Decoder, self).__init__()self.embedding = nn.Embedding(output_dim, emb_dim)self.rnn = nn.GRU(emb_dim + hidden_dim, hidden_dim)self.out = nn.Linear(hidden_dim, output_dim)def forward(self, input, hidden, context):input = input.unsqueeze(0)embedded = self.embedding(input)emb_con = torch.cat((embedded, context), dim=2)output, hidden = self.rnn(emb_con, hidden)prediction = self.out(output.squeeze(0))return prediction, hidden# 注: 这是一个简化的模型,仅用于展示目的。在实际应用中,您需要考虑添加更多细节,如注意力机制、优化器、损失函数等。
输入: 原始文档的词向量序列
输出: 生成的摘要的词向量序列
处理过程: 编码器首先将输入文档转换为一个固定大小的隐藏状态。然后,解码器使用这个隐藏状态作为上下文,逐步生成摘要的词向量序列。
7. 总结
随着科技的迅速发展,自然语言处理已从其原始的文本处理任务进化为复杂的多模态任务,如我们所见,文本摘要正是其中的一个明显例子。从基本的抽取式和生成式摘要到现今的多模态摘要,每一个阶段都反映了我们对信息和知识的不断深化和重新定义。
重要的是,我们不仅仅要关注技术如何实现这些摘要任务,更要明白为什么我们需要这些摘要技术。摘要是对大量信息的简化,它可以帮助人们快速捕获主要观点、节省时间并提高效率。在一个信息过载的时代,这种能力变得尤为重要。
但是,与此同时,我们也面临着一个挑战:如何确保生成的摘要不仅简洁,而且准确、客观,并且不失真。这需要我们不断完善和调整技术,确保其在各种场景下都能提供高质量的摘要。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
相关文章:
深度解析NLP文本摘要技术:定义、应用与PyTorch实战
目录 1. 概述1.1 什么是文本摘要?1.2 为什么需要文本摘要? 2. 发展历程2.1 早期技术2.2 统计方法的崛起2.3 深度学习的应用2.4 文本摘要的演变趋势 3. 主要任务3.1 单文档摘要3.2 多文档摘要3.3 信息性摘要 vs. 背景摘要3.4 实时摘要 4. 主要类型4.1 抽取…...
zabbix监控多实例redis
Zabbix监控多实例Redis 软件名称软件版本Zabbix Server6.0.17Zabbix Agent5.4.1Redis6.2.10 Zabbix客户端配置 编辑自动发现脚本 vim /usr/local/zabbix/scripts/redis_discovery.sh #!/bin/bash #Fucation:redis low-level discovery #Script_name redis_discovery.sh red…...
win11将visual studio 2022的调试控制台改为windows terminal
一、前言 默认的调试控制台太丑了,字体也没有好看的,还是更喜欢windows terminal 二、修改 2.1 修改之前 2.2 修改步骤 打开windows terminal点这个向下的标志 选择settings按照下图1, 2, 3步骤依次操作即可 2.3 修改之后 总结 漂亮很多了...
社区问答精选——长安链开发知多少?(8月)
本文是根据社群内开发者较为关注的问题进行整理,希望可以帮助开发者解决所遇到的问题。有更多问答在社区issue中描述更为细致,开发者提问前可以先按照关键词进行搜索。欢迎各位开发者按照问答template提交issue,也欢迎有意愿的开发者参与到社…...
神经网络-Unet网络
文章目录 前言1.seq2seq 编码后解码2. 网络结构3.特征融合4. 前言 Unet用来做小目标语义分割。 优点:网络结构非常简单。 大纲目录 2016年特别火,在细胞领域做分割特别好。 1.seq2seq 编码后解码 2. 网络结构 几个卷积层,越来越扁&#x…...
Java | 多线程综合练习
不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 文章目录 🌴前言🌴一、卖电影票1.题目2.分析3.代码 🌴二、送礼物1. 题目2. 分析3.代码 🌴三.打印奇数1. 题目2.…...
Kotlin变量与控制条件的基本用法
一、变量与控制条件 1、var与val var:可修改变量 val:只读变量,只读变量并非绝对只读。 编译时常量只能在函数之外定义,因为函数内常量是在运行时赋值,编译时常量要在变量赋值前存在。并且值是无法修改的。 const…...
第18章_瑞萨MCU零基础入门系列教程之GPT
本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…...
openssl websockets
1. HTTPS通信的C实现 - 知乎 GitHub - Bwar/Nebula: Nebula is a powerful framwork for building highly concurrent, distributed, and resilient message-driven applications for C....
Vue 组件的单元测试
1、基本的示例 单元测试是软件开发非常基础的一部分。单元测试会封闭执行最小化单元的代码,使得添加新功能和追踪问题更容易。Vue 的单文件组件使得为组件撰写隔离的单元测试这件事更加直接。它会让你更有信心地开发新特性而不破坏现有的实现,并帮助其他…...
海底两万里的思维导图,轻松了解整体的内容
《海底两万里》是一部经典的科幻小说。小说以其丰富的想象力和对海底世界的描绘而闻名于世。今天我们就用思维导图的分支介绍这个作品到底讲了什么。(思维导图示例:迅捷画板) 《海底两万里》是“凡尔纳三部曲”中的第二部(其它两部…...
ZABBIX 6.4官方安装文档
一、官网地址 Zabbix:企业级开源监控解决方案 二、下载 1.选择您Zabbix服务器的平台 2. Install and configure Zabbix for your platform a. Install Zabbix repository # rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8…...
本地MQTT服务器搭建(EMQX)
一、下载EMQX 下载地址:EMQ (emqx.com) 打开官网后,选择右边的免费试用按钮 然后单击EMQX Enterprise标签,然后选择下面的EMQX开源版,选择开源版的系统平台为Windows,单击免费下载。 在新页面下单击立即下载 二、安装…...
Docker启动pandora并指定ACCESS TOKEN
把chatGPT_ACCESS_TOKEN改成你的ACCESS_TOKEN 《chatGPT ACCESS TOKEN获取地址(需要魔法)》 docker run -d -m 512m -p 88:88 --privilegedtrue -e PANDORA_SERVER0.0.0.0:88 -e PANDORA_ACCESS_TOKENchatGPT_ACCESS_TOKEN --name pandora pengzhile/pa…...
Python + Jmeter 实现自动化性能压测
Step01: Python脚本开发 文件路径:D://wl//testproject//Fone-grpc//project1//test_client.py Python 脚本作用: 通过 grpc 调用底层 c 的接口,做数据库的数据插入与查询操作,然后将返回的结果进行拼接与输出。 2.代码里面将…...
【Linux进行时】进程状态
进程状态: ❓假设我们在上课,在B站上上课,请问我们的B站是不是一直运行呢?💡不是的! ❓假设我们同时打开了B站和PDF阅读器时,是怎么运行的呢? 💡每一个进程在CPU跑一会&a…...
HarmonyOS开发环境搭建
一 鸿蒙简介: 1.1 HarmonyOS是华为自研的一款分布式操作系统,兼容Android,但又区别Android,不仅仅定位于手机系统。更侧重于万物物联和智能终端,目前已更新到4.0版本。 1.2 HarmonyOS软件编程语言是ArkTS,…...
友思特新闻|友思特与IDS深化战略合作伙伴关系
尊敬的客户和合作伙伴, 我们非常高兴地宣布,友思特已经与国际领先的机器视觉解决方案提供商 IDS 深化了我们的合作关系。 作为 IDS 的长期合作伙伴,友思特一直致力于为国内客户提供最先进的机器视觉技术和解决方案。 自从友思特与 IDS 合作…...
ARM Linux DIY(十三)Qt5 移植
前言 板子带有屏幕,那当然要设计一下 GUI,对 Qt5 比较熟悉,那就移植它吧。 移植 Qt5 buildroot 使能 Qt5,这里我们只开启核心功能 gui module --> widgets module 编译 $ make ODIY_V3S/ qt5base编译报错:找不…...
二,手机硬件参数介绍和校验算法
系列文章目录 第一章 安卓aosp源码编译环境搭建 第二章 手机硬件参数介绍和校验算法 第三章 修改安卓aosp代码更改硬件参数 第四章 编译定制rom并刷机实现硬改(一) 第五章 编译定制rom并刷机实现硬改(二) 第六章 不root不magisk不xposed lsposed frida原生修改定位 第七章 安卓…...
ubunutu20/18/22 编译android 5相关的问题汇总-千里马framework开源代码平板编译过程
hi,粉丝朋友们: 闲鱼50块钱淘到了一个开源平板,注意这个平板是有源码的,可以进行相关的编译修改。哈哈哈,马哥这边就体验了一下50块钱平板是否可以拿来做framework呢? 哈哈,说好就开干了&#x…...
tauri vue vite
准备 rust 根据 https://www.rust-lang.org/tools/install,安装 rust 执行 cargo --version 检查安装是否完成nodejs 安装 nodejstauri cargo install create-tauri-app --lockedcargo create-tauri-app 选择: ✔ Project name tauri-app ✔ Choose wh…...
名词解析与经验分享(前端)
目录 1.什么是sass产品 2.下面我想说说事件循环 3. cmd窗口的一些快捷键 4. 组件与插件的区别 5. vue项目嵌入app后调用app方法 6.点击编辑按钮直接回到顶部,输入框光标闪动聚焦 7.短轮询与长轮询 短轮询 长轮询 8.前端moment库 9.移动端-触底刷新实现核心…...
【前端】js下载url文件
不打开新窗口进行下载 function download(res) { var elemIF document.createElement("iframe"); elemIF.src res; elemIF.style.display "none"; document.body.appendChild(elemIF); } window.open(url, _blank); a标签 const ele …...
什么是 BSD 协议?
BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件&…...
【网络教程】揭秘Windows SSH服务端免密登录:告别繁琐,享受安全连接
文章目录 开启Windows下的SSH服务端图形界面安装手动下载安装Windows如何查看系统用户名Windows如何查看本机IP开启免密登录Window生成秘钥Linux下生成秘钥配置公钥视频讲解开启Windows下的SSH服务端 这篇文章演示的环境是Windows11Windows的SSH服务端默认情况下是没有安装的,…...
使用键盘控制Franka机械臂运动
功能说明 使用键盘按键,可以控制franka机械臂7个关节角,已在真机上验证。 代码 主要使用的是官方包内的 franka_example_controllers 1、修改 include下的 joint_position_example_controller.h, 改为如下: // Copyright (c) 2017 Frank…...
力扣第45天----第392题、第115题
# 力扣第45天----第392题、第115题 文章目录 一、第392题--判断子序列二、第115题--不同的子序列 一、第392题–判断子序列 挺简单的,思路跟以前的都差不多。 class Solution { public:bool isSubsequence(string s, string t) {vector<vector<int>&g…...
扔掉你的开发板,跟我玩Mcore-全志h616
本文转载自WhyCan Forum(哇酷开发者社区): https://whycan.com/t_10024.html 作者leefei 这是一个1.69寸触摸小电视。使用全志H616芯片,板上硬件有mpu6050陀螺仪,USB转ttl调试串口,一个USB接口,WIFI&蓝牙&#x…...
【Linux】网络篇:UDP、TCP 网络接口及使用
文章目录 socket 及 相关补充0. netstat - - 查询当前服务器上网络服务器1. 端口号(port)2. 网络字节序3. sockaddr 结构体 一、socket 常见 APIUDP0. IP 地址转化 函数1. socket 函数:创建 socket 文件描述符 (TCP/UDP, 客户端 服务器)2. b…...
银行网站建设方案视频/2345浏览器主页网址
本文打算探讨两种设置方法,一种是在程序中动态设置,一种是在程序启动前的静态设置。 先说静态设置(具体设置见:参考csdn的一篇文章): 1,在/etc/security/limits.conf中修改或者添加进程可打开文…...
申请个人网站和企业官网有什么不同/免费的推文制作网站
在我们研究C#编程语言的基本构建块之前,让我们看一下最基本的C#程序结构,以便我们在接下来的章节中将其作为参考。 创建Hello World计划 AC#程序包括以下部分 - 命名空间声明A classClass methods类属性A Main meth…...
wordpress音乐插件/千锋教育的口碑怎么样
浏览器远程调试插件有很多,本来要使用chrome浏览器的调试插件的,但是需要FQ才能使用(公司网络有限制,果断放弃),最终选择使用UC浏览器的。 其实UC官网插件使用已经介绍的很详细了,但是有几处坑需…...
算命手机网站开发/seo站内优化培训
rpm命令简介:rpm:软件管理器数据库:/var/lib/rpm 用于软件进行查询相关操作的数据库。rpmbuild:用于创建rpm软件包的工具对软件进行安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作。1.命令格式:1、rpm命名规则&…...
重庆专业微网站建设/手机百度账号登录入口
#----命令行连接MySql--------- #启动mysql服务器 net start mysql #关闭 net stop mysql #进入 mysql -h 主机地址 -u 用户名 -p 用户密码 #退出 exit status; 显示当前mysql的version的各种信息。 #--------------------------- #----MySql用户管理--------…...
wordpress评论嵌套样式修改/ks刷粉网站推广马上刷
什么是NPOI NPOI是一个开源的C#读写Excel、WORD的组件,可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 使用NPOI的优势 (1)完全开源 (2)包含了大部分EXCEL的特性(单元格样式、数据格式、公式等等) …...