精华内容
下载资源
问答
  • 自然语言处理入门

    千次阅读 2019-07-28 19:57:36
    自然语言处理入门自然语言处理入门自然语言的概念自然语言的理解自然语言处理的概念自然语言处理的相关技术自然语言处理难点相关学习链接 自然语言处理入门 自然语言的概念 自然语言的理解 自然语言处理(NLP) ...

    自然语言的概念

    自然语言是指人类日常使用的语言,如汉语、英语、法语、德语、等等。自然语言是人类交流和思维的主要工具。
    

    自然语言的理解

    人工智能早期研究的领域之一。
    从微观上讲,语言理解是从自然语言到机器内部之间的一种映射。
    从宏观上讲,语言理解是指机械能够执行人类所期望的某些功能。 
    

    自然语言处理的概念

    为了研究在人与人交际中以及在人与计算机交际中的语言问题的一门科学。
    利用计算机为工具对人类特有的书面形式和空头形式的自然语言的信息进行各种类型处理和加工的技术。
    

    自然语言处理的相关技术

    主要技术 将连续的自然语言文本切分成具有语义合理性和完整性的词汇序列
    分词 将连续的自然语言文本切分成具有语义合理性和完整性的词汇序列
    命名实体识别 识别自然语言文本中具有特定意义的实体(人、地机构、作品等)
    词性标注 为自然语言文本中的每一个词汇赋予一个词性(名词、动词、形容词等)
    依存句法分析 自动分析句子中的句法成分(主语、谓语、宾语等)
    词向量与语义相似度 依托全网海量数据和深度神经网络技术实现对词汇的向量化表示,并据此实现了词汇的语义相似度计算
    文本语义相似度 依托全网海量数据和深度神经网络技术实现对词汇的向量化表示,实现文本间的语义相似度计算的能力
    篇章分析 分析篇章及文本的内在结构,进而分析文本的情感倾向,提取评论性观点,并生成反应文本关键信息的标签与摘要
    机器翻译技术 利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)

    自然语言处理难点

    1. 单词的边界界定

    在口语中,词与词之间通常是连贯的,而界定字词边界通常使用的办法是取用能让给定的上下文最为通顺且在文法上无误的一种最佳组合。在书写上,汉语也没有词与词之间的边界。

    2. 词义的消歧

    许多字词不单只有一个意思,因而我们必须选出使句意最为通顺的解释。

    3. 句法的模糊性

    自然语言的文法通常是模棱两可的,针对一个句子通常可能会剖析(Parse)出多棵剖析树(Parse Tree),而我们必须要仰赖语意及前后文的信息才能在其中选择一棵最为适合的剖析树。

    4. 有瑕疵的或不规范的输入

    例如语音处理时遇到外国口音或地方口音,或者在文本的处理中处理拼写,语法或者光学字符识别(OCR)的错误。

    5. 语言行为与计划

    句子常常并不只是字面上的意思;例如,“你能把盐递过来吗”,一个好的回答应当是把盐递过去;在大多数上下文环境中,“能”将是糟糕的回答,虽说回答“不”或者“太远了我拿不到”也是可以接受的。再者,如果一门课程上一年没开设,对于提问“这门课程去年有多少学生没通过?”回答“去年没开这门课”要比回答“没人没通过”好。

    相关学习链接

    https://www.bilibili.com/video/av27557638
    https://baijiahao.baidu.com/s?id=1617804790284517552&wfr=spider&for=pc

    展开全文
  • 自然语言处理入门.txt

    2020-04-20 11:48:47
    自然语言处理入门
  • 自然语言处理 入门 人工智能 (Artificial Intelligence) Hey Siri, set an alarm for 6 AM tomorrow. 嗨,Siri,明天早上6点设置闹钟。 Done — your alarm is set for 7 AM tomorrow. 完成-您的闹钟将在明天上午7...

    自然语言处理 入门

    人工智能 (Artificial Intelligence)

    Hey Siri, set an alarm for 6 AM tomorrow.

    嗨,Siri,明天早上6点设置闹钟。

    Done — your alarm is set for 7 AM tomorrow.

    完成-您的闹钟将在明天上午7点设置。

    Ever wondered how devices like Siri and Alexa understand and interpret your voice? Have you been slightly annoyed when they couldn’t pick up certain terms? The answer is Natural Language Processing (NLP).

    有没有想过Siri和Alexa之类的设备如何理解和解释您的声音? 当他们无法接受某些条款时,您是否有些生气? 答案是自然语言处理(NLP)。

    NLP is a branch of artificial intelligence that uses both computer science and linguistics to aid computers in understanding “human language.” The purpose of NLP is to bridge the gap between the human language and the command line interface of a computer.

    NLP是人工智能的一个分支,使用计算机科学和语言学来帮助计算机理解“人类语言”。 NLP的目的是弥合人类语言和计算机命令行界面之间的鸿沟。

    Humans have hundreds of languages like English, Spanish, Hindi, Chinese, or French. Computers, on the other hand, have only one native language, which is called the machine language. All of the processes in your computers and smart devices communicate via millions of zeros and ones to perform a specific function. The machine code is unintelligible to humans, which makes NLP a critical part of human-computer interactions.

    人类有数百种语言,例如英语,西班牙语,印地语,中文或法语。 另一方面,计算机只有一种本地语言,称为机器语言。 计算机和智能设备中的所有进程都通过数百万个零和一进行通信以执行特定功能。 机器代码是人类无法理解的,这使NLP成为人机交互的关键部分。

    Let us look at some of the core use cases and a few real-world applications of NLP.

    让我们看一下NLP的一些核心用例和一些实际应用。

    用例 (USE CASES)

    情感分析 (SENTIMENT ANALYSIS)

    Image for post

    Nowadays, people express their feedback through surveys, customer feedback, and social media platforms. As a result, organizations have to rely on software that can understand human emotions expressed via text to understand their customer's feedback. These analyses are used to adapt products and services to meet customer expectations. Sentiment analysis is a crucial tool to help achieve this goal.

    如今,人们通过调查,客户反馈和社交媒体平台表达他们的反馈。 结果,组织必须依靠能够理解通过文本表达的人类情感的软件来理解其客户的反馈。 这些分析用于调整产品和服务以满足客户的期望。 情感分析是帮助实现此目标的关键工具。

    Sentiment Analysis is the process of identifying opinions expressed in text and understand whether the author’s attitude towards the discussed product or service is positive, neutral, or negative.

    情感分析是识别文本表达的观点并了解作者对所讨论产品或服务的态度是正面的,中立的还是负面的过程。

    Real-Time Sentiment analysis helps in identifying critical issues in real-time. For example, whenever a crisis or a scandal is about to affect an organization due to escalating protests on social media, businesses can rely on sentiment analysis models to quickly recognize the issues and get in front of the customer and address it before it blows out of proportion.

    实时情绪分析有助于实时识别关键问题。 例如,每当危机或丑闻将因社交媒体上的抗议活动升级而影响到组织时,企业可以依靠情绪分析模型来快速识别问题并在客户面前解决并解决问题比例。

    Here is an article by MonkeyLearn that explains Sentiment Analysis in depth.

    这是MonkeyLearn的一篇文章,深入解释了情感分析。

    垃圾邮件过滤 (SPAM FILTERING)

    NLP is used extensively in spam filtering as well. The function of a spam filter is to spot unwanted e-mails and send them in a separate folder instead of your regular inbox.

    NLP也广泛用于垃圾邮件过滤。 垃圾邮件过滤器的功能是发现不需要的电子邮件,并将其发送到单独的文件夹中,而不是常规的收件箱中。

    Simple spam filtering can be achieved using classification models in machine learning. However, NLP provides better capabilities to distinguish between useful emails and real-spam. NLP techniques such as n-gram modelling are applied to emails to classify them as spam or ham with higher accuracy than traditional classification models.

    使用机器学习中的分类模型可以实现简单的垃圾邮件过滤。 但是,NLP提供了更好的功能来区分有用的电子邮件和真实的垃圾邮件。 NLP技术(例如n-gram建模)被应用于电子邮件,以比传统分类模型更高的准确性将它们分类为垃圾邮件或火腿。

    聊天机器人 (Chatbots)

    A chatbot is an artificial intelligence (AI) software that can simulate a conversation with a user in natural language. A chatbot is an advanced implementation of natural language processing, taking us closer to communicating with computers in a way similar to human-to-human conversations.

    聊天机器人是一种人工智能(AI)软件,可以用自然语言模拟与用户的对话。 聊天机器人是自然语言处理的高级实现,使我们更接近以类似于人与人的对话的方式与计算机进行通信。

    Image for post
    Image Credits: google.com
    图片来源:google.com

    Chatbots use a combination of Natural Language Processing, Natural Language Understanding, and Natural Language Generation in order to achieve Conversational User Interface.

    聊天机器人结合使用自然语言处理,自然语言理解和自然语言生成,以实现会话用户界面。

    Chatbots are a great use case for customer support, saving businesses time and money. Since the majority of questions raised by customers are asked frequently, they can be handled by chatbots. This helps customer service agents prioritize important customer queries, thereby ensuring overall customer satisfaction.

    聊天机器人是客户支持的绝佳用例,可节省企业的时间和金钱。 由于客户经常提出大多数问题,因此聊天机器人可以解决这些问题。 这有助于客户服务代理优先考虑重要的客户查询,从而确保总体客户满意度。

    产品展示 (PRODUCTS)

    There are numerous products that we use on a daily basis without realizing the fact that they are powered by NLP. Here are some of the most popular ones.

    我们每天都有大量产品在使用,而没有意识到它们由NLP提供支持。 这是一些最受欢迎的。

    SIRI / ALEXA / CORTANA (SIRI / ALEXA / CORTANA)

    Every leading tech giant has developed its own virtual assistant to provide a wholesome experience to the users. Alexa, Cortana, Siri, and Google Assistant are used extensively. These programs are not only able to control your smartphone, but also a vast number of compatible smart devices Air conditioners, Smart TVs, etc.

    每个领先的技术巨头都开发了自己的虚拟助手,以为用户提供有益的体验。 Alexa,Cortana,Siri和Google Assistant被广泛使用。 这些程序不仅可以控制您的智能手机,而且还可以控制大量兼容的智能设备,空调,智能电视等。

    NLP is an essential part of these virtual assistants. It is used to detect, interpret, and understand the text or voice commands to perform the requested function. All of these assistants are continually evolving through AI and machine learning to expand the accuracy of their responses.

    NLP是这些虚拟助手的重要组成部分。 它用于检测,解释和理解执行所请求功能的文本或语音命令。 所有这些助手都通过AI和机器学习不断发展,以扩大其响应的准确性。

    语法 (GRAMMARLY)

    Grammarly has become one of, if not the most popular writing tool used by people all around the world. It is a fascinating tool that has the capability of suggesting different kinds of changes in your writing. Other than the spellings and grammar check, Grammarly can check the usage of Active and Passive voice, the tone of the document and suggest changes according to your writing goals.

    语法已经成为全世界人民使用的,甚至不是最受欢迎的书写工具之一。 它是一种引人入胜的工具,能够建议您写作中的各种变化。 除了拼写和语法检查外,语法检查还可以检查主动和被动语态的用法,文档的语气并根据您的写作目标提出更改建议。

    Image for post
    Image Credits: Grammarly.com
    图片来源:Grammarly.com

    It is quite understandable if you have wondered about the working mechanism of Grammarly. Contrary to popular belief that some kinds of writing robots are checking your work, AI and NLP are the primary driving forces behind Grammarly’s functions. It offers different types of features and options for checking one’s writing. Hence, Grammarly’s AI system is composed of a wide range of NLP algorithms that can deal with different writing styles and tones.

    如果您对语法的工作机制有所疑问,这是可以理解的。 与某些写作机器人正在检查您的工作的普遍看法相反,人工智能和自然语言处理是语法功能背后的主要驱动力。 它提供了不同类型的功能和选项来检查一个人的写作。 因此,文法的AI系统由各种NLP算法组成,可以处理不同的书写风格和音调。

    The entire machine learning system of Grammarly is quite remarkable. It is continuously being updated to become the best writing assistant available on the internet. NLP allows Grammarly to process English writing and perform various tasks on them to produce a thorough report. These tasks include writing improvement, readability scoring, sentiment analysis, and suggestions to use alternate words, phrases, and sentence structure.

    语法学习的整个机器学习系统非常出色。 它不断地被更新成为互联网上最好的写作助手。 NLP允许语法处理英语写作并对其执行各种任务以产生详尽的报告。 这些任务包括写作改进,可读性评分,情感分析以及使用替代单词,短语和句子结构的建议。

    谷歌翻译 (GOOGLE TRANSLATE)

    Language translation is an important application of Natural Language Processing. It has saved organizations billions of dollars in terms of the effort and man-power required in order to translate documents & audio from one language to the other.

    语言翻译是自然语言处理的重要应用。 为了将文档和音频从一种语言转换为另一种语言,它为组织节省了数十亿美元的工作量和人力。

    Google Translate is perhaps the most popular and efficient translator available. It is an incredibly efficient system that makes use of AI, machine learning, and NLP to translate text from one language to another. As of now, Google Translate supports 101 languages.

    Google翻译可能是最流行,效率最高的翻译器。 这是一个效率极高的系统,它利用AI,机器学习和NLP将文本从一种语言翻译成另一种语言。 到目前为止,Google翻译支持101种语言。

    Image for post
    Image credits: google.com
    图片来源:google.com

    It is important to note that translation is a very tricky process because the software has to understand each word, phrase, and sentence structure for accurate translation. Hence, Google Translate is continuously updated to improve the quality and accuracy of the language-translation.

    需要特别注意的是,翻译是一个非常棘手的过程,因为该软件必须理解每个单词,短语和句子的结构才能进行准确的翻译。 因此,Google Translate会不断更新以提高语言翻译的质量和准确性。

    自校正 (AUTOCORRECT)

    Image for post
    Image credits: grammarly.com
    图片来源:grammarly.com

    Spell-check is an underrated tool that is invaluable in our everyday lives. Not everyone can produce a perfect sentence without any spellings or grammar errors. In such a case, spell checks play a huge role in improving writing. Moreover, the autocorrection feature is prevalent in smartphones because it allows you to write down your thoughts immediately without worrying about the spellings. It eradicates the spelling errors from your messages and improves communication.

    拼写检查是一种被低估的工具,在我们的日常生活中非常宝贵。 并非每个人都能产生完美的句子而没有任何拼写或语法错误。 在这种情况下,拼写检查在改善写作中起着巨大的作用。 此外,自动更正功能在智能手机中很普遍,因为它使您可以立即写下自己的想法,而不必担心拼写错误。 它可以消除邮件中的拼写错误并改善沟通。

    自动完成 (AUTOCOMPLETE)

    Autocomplete and Autocomplete is another useful application of NLP that is being used by almost every web / mobile application, including search engines like Google.

    自动完成和自动完成是NLP的另一个有用的应用程序,几乎每个Web /移动应用程序都在使用它,包括Google之类的搜索引擎。

    Image for post
    Image credits: google.com
    图片来源:google.com

    Autocomplete helps us to quickly find what we are looking for, using previous searches performed by other customers. Ultimately, autocomplete searches leads to increased customer satisfaction as they will be able to find the required product, service, or any other information quickly and more accurately.

    自动完成功能可帮助我们使用其他客户之前执行的搜索来快速找到所需的内容。 最终,自动完成搜索可提高客户满意度,因为他们将能够更快,更准确地找到所需的产品,服务或任何其他信息。

    Similarly, Autosuggest helps in quick e-mailing and messaging. You can select the suitable word or even a phrase with just a single click, all thanks to the advancements in NLP. We use these features on a daily basis without realizing that they are the applications of Natural Language Processing.

    同样,Autosuggest有助于快速发送电子邮件和消息。 只需单击一下,您就可以选择合适的词甚至词组,这一切都要归功于NLP的进步。 我们每天都使用这些功能,而没有意识到它们是自然语言处理的应用程序。

    结论 (Conclusion)

    There are hundreds of languages in the world that make communication a complex phenomenon. It varies from culture to culture. Moreover, there is a lot of diversity in the languages in terms of the writing style, syntax, and grammar rules. Similarly, varying accents and dialects also make a major difference in communication.

    世界上有数百种语言使交流成为一种复杂现象。 它因文化而异。 此外,在写作风格,语法和语法规则方面,语言也有很多差异。 同样,口音和方言的变化也对交流产生重大影响。

    Hence, NLP is a developing concept that still requires a lot of research and innovation to cater to all kinds of use cases. Along with deep learning, syntactic and semantic learning are also becoming essential parts of the NLP to remove language ambiguities and enhance the quality of NLP-based products and services.

    因此,NLP是一个发展中的概念,仍然需要进行大量研究和创新才能满足各种用例。 随着深度学习的发展,句法和语义学习也已成为NLP的基本组成部分,以消除语言歧义并提高基于NLP的产品和服务的质量。

    Hope you liked this article. I regularly write about Cybersecurity, Machine Learning, and Productivity. You can signup for my weekly newsletter here.

    希望您喜欢这篇文章。 我定期撰写有关网络安全,机器学习和生产力的文章。 您可以 在这里 注册我的 每周新闻

    翻译自: https://medium.com/manishmshiva/a-beginners-guide-to-natural-language-processing-a119e919dd59

    自然语言处理 入门

    展开全文
  • 3.3 自然语言处理入门

    2020-05-17 21:23:44
    自然语言处理入门 自然语言处理入门 学习目标: 了解什么是自然语言处理. 了解自然语言处理的发展简史. 了解自然语言处理的应用场景. 了解本教程中的自然语言处理. 什么是...

    自然语言处理入门

    自然语言处理入门


    • 学习目标:

      • 了解什么是自然语言处理.

      • 了解自然语言处理的发展简史.

      • 了解自然语言处理的应用场景.

      • 了解本教程中的自然语言处理.



    • 什么是自然语言处理:

      • 自然语言处理(Natural Language Processing, 简称NLP)是计算机科学与语言学中关注于计算机与人类语言间转换的领域.

     


    • 自然语言处理的发展简史:

     


    • 自然语言处理的应用场景:

      • 语音助手

      • 机器翻译

      • 搜索引擎

      • 智能问答

      • ...


    • 语音助手:

      • 科大讯飞语音识别技术访谈!

      •  


    • 机器翻译:

      • CCTV上的机器翻译系统, 让世界聊得来!


    • 本教程中的自然语言处理:

      • 课程理念与宗旨

      • 内容先进性说明

      • 内容大纲概要


    • 课程理念与宗旨:

      • 本系列课程将开启你的NLP之旅, 全面从企业实战角度出发, 课程设计内容对应企业开发标准流程和企业发展路径, 助力你成为一名真正的AI-NLP工程师.


    • 内容先进性说明:

      • 本课程内容结合当下时代背景, 更多关注NLP在深度学习领域的进展, 这也将是未来几年甚至几十年NLP的重要发展方向, 简化传统NLP的内容, 如语言规则, 传统模型, 特征工程等, 带来效果更好, 应用更广的Transfomer, 迁移学习等先进内容.


    • 内容大纲概要:

     

    模块名称

    主要内容

    案例

    文本预处理

    文本处理基本方法, 文本张量表示, 文本数据分析, 文本增强方法等

    路透社新闻类型分类任务

    经典序列模型

    HMM与CRF模型的作用, 使用过程, 差异比较以及发展现状等

     

    RNN及其变体

    RNN, LSTM, GRU模型的作用, 构建, 优劣势比较等

    全球人名分类任务, 英译法翻译任务

    Transformer

    Transformer模型的作用, 细节原理解析, 模型构建过程等

    构建基于Transformer的语言模型

    迁移学习

    fasttext工具的作用, 迁移学习理论, NLP标准数据集和预训练模型的使用等

    全国酒店评论情感分析任务

     

     

    展开全文
  • NLP-Beginner:自然语言处理入门练习
  • 中文自然语言处理入门实战

    万次阅读 多人点赞 2018-07-03 02:45:10
    本达人课,作为中文自然语言处理边学边实战的入门级教程,以小数据量的“简易版”实例,通过实战带大家快速掌握 NLP 在中文方面开发的基本能力。 本课程共包含 18 节。各小节之间并没有紧密耦合,但是整个内容还是...

    课程介绍

    NLP 作为 AI 技术领域中重要的分支,随着其技术应用范围不断扩大,在数据处理领域占有越来越重要的地位。本达人课,作为中文自然语言处理边学边实战的入门级教程,以小数据量的“简易版”实例,通过实战带大家快速掌握 NLP 在中文方面开发的基本能力。

    本课程共包含 22 篇。各篇之间并没有紧密耦合,但是整个内容还是遵循一定的开发流程。

    比如,按照中文语料处理的过程,在获取到语料之后开始分词,分词之后可以进行一些统计和关键字提取,并通过数据可视化手段熟悉和了解你的数据。

    紧接着通过词袋或者词向量,把文本数据转换成计算机可以计算的矩阵向量。后续从机器学习简单的有监督分类和无监督聚类入手,到深度学习中神经网络的应用,以及简易聊天机器人和知识图谱的构建。带你直观深入、高效地了解 NLP 开发的流程,全方位提升你的技术实力与思维方式。

    课程示例数据下载地址:Github

    作者介绍

    宿永杰,现就职于某知名互联网公司担任数据挖掘工程师,PC 端全栈开发工程师,擅长 Java 大数据开发 、Python、SQL 数据挖掘等,参与过客户画像、流量预测以及自然语言处理等项目的开发。

    课程内容

    开篇词:中文自然语言处理——未来数据领域的珠穆朗玛峰

    人工智能或许是人类最美好的梦想之一。追溯到公元前仰望星空的古希腊人,当亚里士多德为了解释人类大脑的运行规律而提出了联想主义心理学的时候,他恐怕不会想到,两千多年后的今天,人们正在利用联想主义心理学衍化而来的人工神经网络,构建的超级人工智能成为最能接近梦想的圣境,并一次又一次地挑战人类大脑认知的极限。

    在以大数据、云计算为背景的技术框架支撑下,互联网发展极为迅速,过去一个技术或者行业热点从诞生到消亡需要几年乃至更长的时间,但是最近几年,其生命周期在不断缩短,大多数的热点从产生到消亡只需要1-2年,有些仅仅是半年甚至几个月的时间。互联网行业越来越凸显出快鱼吃慢鱼的特点。从技术本身也有体现,比如2012-2014年是移动互联网的热潮,Android 和 iOS App 开发工程师当时非常流行。随后,2015大数据、云计算之年,2016年后大数据时代,2017年被称为人工智能元年,2018年炒得最火的是区块链和币圈。在互联网以这种迅雷不及掩耳之势的发展速度下,作为初学者就很容易被各种技术概念迷惑,找不到自己想要的突破口和深入的领域,即便是计算机从业者有时候也分不清到底如何定位自己未来的技术方向。

    下面,我们先从中国互联网的发展历程说起。

    从1994诞生(加入国际互联网)到现在才短短的24年,就在这24年里,我们经历了4次非同凡响、一次比一次更彻底的发展大高潮。

    第一次互联网大浪潮(1994年—2000年),以四大门户和搜索为代表,能做网站的工程师就可以被称为技术牛人;第二次互联网大浪潮(2001年—2008年),从搜索到 PC 端社交化网络的发展,我们的社交形态发生了根本的变化,从线下交流正转变为线上交流,大量的数据开始生成;第三次互联网大浪潮(2009年—2014年)PC 端互联网到移动互联网,此时各种 App 如雨后春笋般的冒出来,尽管后来有很多 App 都死了,但是移动互联网几乎颠覆了整个中国老百姓个人生活和商业形态,改变着我们每一个人的生活、消费、社交、出行方式等。

    那第四次是什么呢?没错,第四次互联网大浪潮(2015—至今),是在前3次发展基础上,以大数据、云计算为背景发展起来的人工智能技术革命,分布式计算让大数据处理提速,而昔日陨落的巨星深度学习此刻再次被唤醒,并很快在图像和语音方面取得重大突破,但在自然语言方面却显得有些暗淡,突破并不是很大。尽管有很多人都去从事计算机视觉、语音等方面的工作,但随着 AI 的继续发展,NLP 方向正显得越来越重要。

    接着,我们总结一下数据领域成就和挑战。

    有一个不可否认的事实,当前从事互联网的人们已经制造出了海量的数据,未来还将继续持续,其中包括结构化数据、半结构化和非结构化数据。我发现,对于结构化数据而言,在大数据、云计算技术“上下齐心”的大力整合下,其技术基本趋向成熟和稳定,比如关系型数据库以及基于 Hadoop 的 HDFS 分布式文件系统、Hive 数据仓库和非关系型数据库 Hbase,以及 Elasticsearch 集群等数据存储的关系数据库或者 NoSQL,可以用来管理和存储数据;基于 MapReduce、Spark 和 Storm、Flink 等大数据处理框架可以分别处理离线和实时数据等。而半结构化、非结构化的数据,除了以 ELK 为代表的日志处理流程,过去在其它限定领域基于规则和知识库也取得了一定的成果,因其自身的复杂性,未来更多领域应用都具有很大的困难和挑战。

    最后,我们看看国内外人工智能领域的工业现状。

    今年5月19日有幸在北京国家会议中心参加了2018全球人工智能技术大会(GAITC)。在大会上,从中国科学院院士姚期智提出人工智能的新思维开始,其重点讲述了人工神经网络为代表的深度学习以及量子计算机将是未来发展的新思维;紧接着中国工程院院士李德毅分享了路测的学问——无人驾驶的后图灵测试,提出未来无人驾驶挑战应该是让无人驾驶具有司机的认知、思维和情感,而不是当前以 GPS 定位和动力学解决无人驾驶的问题;接下来微软全球资深副总裁王永东向我们展示的微软小冰,大家一起见证了微软小冰在社交互动、唱歌、作诗、节目主持和情感方面不凡的表现,而本人也真实测试了一下,小冰现在的表现已经非常优秀了。然而要达到一个成年自然人的水平,在某些方面还不能完全表现出人的特性。下面这幅图是微软小冰的个人介绍,有兴趣可以在微信公众号关注小冰,进行体验。

    enter image description here

    人工智能产业的快速发展,资本市场大量资金涌入,促使中国人工智能领域投融资热度快速升温,这充分表明资本市场对于人工智能发展前景的认可。《2018年人工智能行业创新企业 Top100》发布,据榜单显示:进入2018年人工智能行业创新企业前十名的企业分别是:百度、阿里云、美图秀秀、华大基因、科大讯飞、微鲸科技、华云数据、爱驰亿维、青云、七牛云。作为人工智能的一个重要组成部分,自然语言处理(NLP)的研究对象是计算机和人类语言的交互,其任务是理解人类语言并将其转换为机器语言。在目前的商业场中,NLP 技术用于分析源自邮件、音频、文件、网页、论坛、社交媒体中的大量半结构化和非结构化数据,市场前景巨大。

    为什么说未来数据领域的珠穆朗玛峰是中文自然语言处理?

    正是基于上面对中国互联网发展的总结,对当前数据领域所面临的挑战以及资本市场对人工智能的认可分析,未来数据领域的重点是自然语言处理技术及其在智能问答、情感分析、语义理解、知识图谱等应用方面的突破。对于我们国内中文来说,如何更好的把前面所说的应用在中文处理上,显得更为重要和急迫,所以我认为未来数据领域的珠穆朗玛峰是中文自然语言处理 。

    作为初学者,我们目前又面临这样的尴尬,网上大部分自然语言处理内容都是英文为基础,大多数人先是学好了英语的处理,回头来再处理中文,却发现有很大的不同,这样不仅让中文自然语言处理学习者走了弯路,也浪费了大量时间和精力。中文的处理比英文复杂的多,网上中文相关资料少之又少,国内纯中文自然语言处理书籍只有理论方面的,却在实战方面比较空缺,这让中文自然语言处理的研究开发工作感到举步维艰,很难下笔。

    关于本达人课

    本课程共包含19节(包括开篇词)。

    各小节之间并没有紧密耦合,但是整个内容还是遵循一定的开发流程。比如,按照中文语料处理的过程,在获取到语料之后开始分词,分词之后可以进行一些统计和关键字提取,并通过数据可视化手段熟悉和了解你的数据。紧接着通过词袋或者词向量,把文本数据转换成计算机可以计算的矩阵向量。后续从机器学习简单的有监督分类和无监督聚类入手,到深度学习中神经网络的应用,以及简易聊天机器人和知识图谱的构建。带你直观深入、高效地了解 NLP 开发的流程,全方位提升你的技术实力与思维方式。

    因此,本达人课,作为中文自然语言处理初学者边学边实战的入门级教程,希望从中文实际出发,针对中文语料以小数据量的“简易版”实例,通过实战带大家快速掌握 NLP 在中文方面开发的基本能力。当然作为读者, 我默认你已经掌握 Python 编程语言和有一定的机器学习理论知识,当然不会也没关系,可以边学边做,还是那句老话:“只要功夫深铁杵磨成针”。

    点击了解更多《中文自然语言处理入门》

    课程寄语

    无论是初入 AI 行业的新人,还是想转行成为 AI 领域的技术工程师,都可以从本场达人课中,收获中文自然语言处理相关知识。因为篇幅原因,本课程无法包含 NLP 的所有知识以及比较前沿的知识,但是我会在讲好每节课的前提下,尽量分享一些比较前沿的知识来作为补充。

    第01课:中文自然语言处理的完整机器处理流程

    2016年全球瞩目的围棋大战中,人类以失败告终,更是激起了各种“机器超越、控制人类”的讨论,然而机器真的懂人类吗?机器能感受到人类的情绪吗?机器能理解人类的语言吗?如果能,那它又是如何做到呢?带着这样好奇心,本文将带领大家熟悉和回顾一个完整的自然语言处理过程,后续所有章节所有示例开发都将遵从这个处理过程。

    首先我们通过一张图(来源:网络)来了解 NLP 所包含的技术知识点,这张图从分析对象和分析内容两个不同的维度来进行表达,个人觉得内容只能作为参考,对于整个 AI 背景下的自然语言处理来说还不够完整。

    enter image description here

    有机器学习相关经验的人都知道,中文自然语言处理的过程和机器学习过程大体一致,但又存在很多细节上的不同点,下面我们就来看看中文自然语言处理的基本过程有哪些呢?

    获取语料

    语料,即语言材料。语料是语言学研究的内容。语料是构成语料库的基本单元。所以,人们简单地用文本作为替代,并把文本中的上下文关系作为现实世界中语言的上下文关系的替代品。我们把一个文本集合称为语料库(Corpus),当有几个这样的文本集合的时候,我们称之为语料库集合(Corpora)。(定义来源:百度百科)按语料来源,我们将语料分为以下两种:

    1.已有语料

    很多业务部门、公司等组织随着业务发展都会积累有大量的纸质或者电子文本资料。那么,对于这些资料,在允许的条件下我们稍加整合,把纸质的文本全部电子化就可以作为我们的语料库。

    2.网上下载、抓取语料

    如果现在个人手里没有数据怎么办呢?这个时候,我们可以选择获取国内外标准开放数据集,比如国内的中文汉语有搜狗语料人民日报语料。国外的因为大都是英文或者外文,这里暂时用不到。也可以选择通过爬虫自己去抓取一些数据,然后来进行后续内容。

    语料预处理

    这里重点介绍一下语料的预处理,在一个完整的中文自然语言处理工程应用中,语料预处理大概会占到整个50%-70%的工作量,所以开发人员大部分时间就在进行语料预处理。下面通过数据洗清、分词、词性标注、去停用词四个大的方面来完成语料的预处理工作。

    1.语料清洗

    数据清洗,顾名思义就是在语料中找到我们感兴趣的东西,把不感兴趣的、视为噪音的内容清洗删除,包括对于原始文本提取标题、摘要、正文等信息,对于爬取的网页内容,去除广告、标签、HTML、JS 等代码和注释等。常见的数据清洗方式有:人工去重、对齐、删除和标注等,或者规则提取内容、正则表达式匹配、根据词性和命名实体提取、编写脚本或者代码批处理等。

    2.分词

    中文语料数据为一批短文本或者长文本,比如:句子,文章摘要,段落或者整篇文章组成的一个集合。一般句子、段落之间的字、词语是连续的,有一定含义。而进行文本挖掘分析时,我们希望文本处理的最小单位粒度是词或者词语,所以这个时候就需要分词来将文本全部进行分词。

    常见的分词算法有:基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法和基于规则的分词方法,每种方法下面对应许多具体的算法。

    当前中文分词算法的主要难点有歧义识别和新词识别,比如:“羽毛球拍卖完了”,这个可以切分成“羽毛 球拍 卖 完 了”,也可切分成“羽毛球 拍卖 完 了”,如果不依赖上下文其他的句子,恐怕很难知道如何去理解。

    3.词性标注

    词性标注,就是给每个词或者词语打词类标签,如形容词、动词、名词等。这样做可以让文本在后面的处理中融入更多有用的语言信息。词性标注是一个经典的序列标注问题,不过对于有些中文自然语言处理来说,词性标注不是非必需的。比如,常见的文本分类就不用关心词性问题,但是类似情感分析、知识推理却是需要的,下图是常见的中文词性整理。

    enter image description here

    常见的词性标注方法可以分为基于规则和基于统计的方法。其中基于统计的方法,如基于最大熵的词性标注、基于统计最大概率输出词性和基于 HMM 的词性标注。

    4.去停用词

    停用词一般指对文本特征没有任何贡献作用的字词,比如标点符号、语气、人称等一些词。所以在一般性的文本处理中,分词之后,接下来一步就是去停用词。但是对于中文来说,去停用词操作不是一成不变的,停用词词典是根据具体场景来决定的,比如在情感分析中,语气词、感叹号是应该保留的,因为他们对表示语气程度、感情色彩有一定的贡献和意义。

    特征工程

    做完语料预处理之后,接下来需要考虑如何把分词之后的字和词语表示成计算机能够计算的类型。显然,如果要计算我们至少需要把中文分词的字符串转换成数字,确切的说应该是数学中的向量。有两种常用的表示模型分别是词袋模型和词向量。

    词袋模型(Bag of Word, BOW),即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如 list),然后按照计数的方式对出现的次数进行统计。统计词频这只是最基本的方式,TF-IDF 是词袋模型的一个经典用法。

    词向量是将字、词语转换成向量矩阵的计算模型。目前为止最常用的词表示方法是 One-hot,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。还有 Google 团队的 Word2Vec,其主要包含两个模型:跳字模型(Skip-Gram)和连续词袋模型(Continuous Bag of Words,简称 CBOW),以及两种高效训练的方法:负采样(Negative Sampling)和层序 Softmax(Hierarchical Softmax)。值得一提的是,Word2Vec 词向量可以较好地表达不同词之间的相似和类比关系。除此之外,还有一些词向量的表示方式,如 Doc2Vec、WordRank 和 FastText 等。

    特征选择

    同数据挖掘一样,在文本挖掘相关问题中,特征工程也是必不可少的。在一个实际问题中,构造好的特征向量,是要选择合适的、表达能力强的特征。文本特征一般都是词语,具有语义信息,使用特征选择能够找出一个特征子集,其仍然可以保留语义信息;但通过特征提取找到的特征子空间,将会丢失部分语义信息。所以特征选择是一个很有挑战的过程,更多的依赖于经验和专业知识,并且有很多现成的算法来进行特征的选择。目前,常见的特征选择方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六种。

    模型训练

    在特征向量选择好之后,接下来要做的事情当然就是训练模型,对于不同的应用需求,我们使用不同的模型,传统的有监督和无监督等机器学习模型, 如 KNN、SVM、Naive Bayes、决策树、GBDT、K-means 等模型;深度学习模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。这些模型在后续的分类、聚类、神经序列、情感分析等示例中都会用到,这里不再赘述。下面是在模型训练时需要注意的几个点。

    1.注意过拟合、欠拟合问题,不断提高模型的泛化能力。

    过拟合:模型学习能力太强,以至于把噪声数据的特征也学习到了,导致模型泛化能力下降,在训练集上表现很好,但是在测试集上表现很差。

    常见的解决方法有:

    • 增大数据的训练量;
    • 增加正则化项,如 L1 正则和 L2 正则;
    • 特征选取不合理,人工筛选特征和使用特征选择算法;
    • 采用 Dropout 方法等。

    欠拟合:就是模型不能够很好地拟合数据,表现在模型过于简单。

    常见的解决方法有:

    • 添加其他特征项;
    • 增加模型复杂度,比如神经网络加更多的层、线性模型通过添加多项式使模型泛化能力更强;
    • 减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

    2.对于神经网络,注意梯度消失和梯度爆炸问题。

    评价指标

    训练好的模型,上线之前要对模型进行必要的评估,目的让模型对语料具备较好的泛化能力。具体有以下这些指标可以参考。

    1.错误率、精度、准确率、精确度、召回率、F1 衡量。

    错误率:是分类错误的样本数占样本总数的比例。对样例集 D,分类错误率计算公式如下:

    enter image description here

    精度:是分类正确的样本数占样本总数的比例。这里的分类正确的样本数指的不仅是正例分类正确的个数还有反例分类正确的个数。对样例集 D,精度计算公式如下:

    enter image description here

    对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(True Positive)、假正例(False Positive)、真反例(True Negative)、假反例(False Negative)四种情形,令 TP、FP、TN、FN 分别表示其对应的样例数,则显然有 TP+FP++TN+FN=样例总数。分类结果的“混淆矩阵”(Confusion Matrix)如下:

    enter image description here

    准确率,缩写表示用 P。准确率是针对我们预测结果而言的,它表示的是预测为正的样例中有多少是真正的正样例。定义公式如下:

    enter image description here

    精确度,缩写表示用 A。精确度则是分类正确的样本数占样本总数的比例。Accuracy 反应了分类器对整个样本的判定能力(即能将正的判定为正的,负的判定为负的)。定义公式如下:

    enter image description here

    召回率,缩写表示用 R。召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确。定义公式如下:

    enter image description here

    F1 衡量,表达出对查准率/查全率的不同偏好。定义公式如下:

    enter image description here

    2.ROC 曲线、AUC 曲线。

    ROC 全称是“受试者工作特征”(Receiver Operating Characteristic)曲线。我们根据模型的预测结果,把阈值从0变到最大,即刚开始是把每个样本作为正例进行预测,随着阈值的增大,学习器预测正样例数越来越少,直到最后没有一个样本是正样例。在这一过程中,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了 ROC 曲线。

    ROC 曲线的纵轴是“真正例率”(True Positive Rate, 简称 TPR),横轴是“假正例率”(False Positive Rate,简称FPR),两者分别定义为:

    enter image description here

    enter image description here

    ROC 曲线的意义有以下几点:

    1. ROC 曲线能很容易的查出任意阈值对模型的泛化性能影响;
    2. 有助于选择最佳的阈值;
    3. 可以对不同的模型比较性能,在同一坐标中,靠近左上角的 ROC 曲所代表的学习器准确性最高。

    如果两条 ROC 曲线没有相交,我们可以根据哪条曲线最靠近左上角哪条曲线代表的学习器性能就最好。但是实际任务中,情况很复杂,若两个模型的 ROC 曲线发生交叉,则难以一般性的断言两者孰优孰劣。此时如果一定要进行比较,则比较合理的判断依据是比较 ROC 曲线下的面积,即AUC(Area Under ROC Curve)。

    AUC 就是 ROC 曲线下的面积,衡量学习器优劣的一种性能指标。AUC 是衡量二分类模型优劣的一种评价指标,表示预测的正例排在负例前面的概率。

    前面我们所讲的都是针对二分类问题,那么如果实际需要在多分类问题中用 ROC 曲线的话,一般性的转化为多个“一对多”的问题。即把其中一个当作正例,其余当作负例来看待,画出多个 ROC 曲线。

    模型上线应用

    模型线上应用,目前主流的应用方式就是提供服务或者将模型持久化。

    第一就是线下训练模型,然后将模型做线上部署,发布成接口服务以供业务系统使用。

    第二种就是在线训练,在线训练完成之后把模型 pickle 持久化,然后在线服务接口模板通过读取 pickle 而改变接口服务。

    模型重构(非必须)

    随着时间和变化,可能需要对模型做一定的重构,包括根据业务不同侧重点对上面提到的一至七步骤也进行调整,重新训练模型进行上线。

    参考文献

    1. 周志华《机器学习》
    2. 李航《统计学习方法》
    3. 伊恩·古德费洛《深度学习》

    点击了解更多《中文自然语言处理入门》

    第02课:简单好用的中文分词利器 jieba 和 HanLP

    前言

    从本文开始,我们就要真正进入实战部分。首先,我们按照中文自然语言处理流程的第一步获取语料,然后重点进行中文分词的学习。中文分词有很多种,常见的比如有中科院计算所 NLPIR、哈工大 LTP、清华大学 THULAC 、斯坦福分词器、Hanlp 分词器、jieba 分词、IKAnalyzer 等。这里针对 jieba 和 HanLP 分别介绍不同场景下的中文分词应用。

    jieba 分词

    jieba 安装

    (1)Python 2.x 下 jieba 的三种安装方式,如下:

    • 全自动安装:执行命令 easy_install jieba 或者 pip install jieba / pip3 install jieba,可实现全自动安装。

    • 半自动安装:先下载 jieba,解压后运行 python setup.py install

    • 手动安装:将 jieba 目录放置于当前目录或者 site-packages 目录。

    安装完通过 import jieba 验证安装成功与否。

    (2)Python 3.x 下的安装方式。

    Github 上 jieba 的 Python3.x 版本的路径是:https://github.com/fxsjy/jieba/tree/jieba3k。

    通过 git clone https://github.com/fxsjy/jieba.git 命令下载到本地,然后解压,再通过命令行进入解压目录,执行 python setup.py install 命令,即可安装成功。

    jieba 的分词算法

    主要有以下三种:

    1. 基于统计词典,构造前缀词典,基于前缀词典对句子进行切分,得到所有切分可能,根据切分位置,构造一个有向无环图(DAG);
    2. 基于DAG图,采用动态规划计算最大概率路径(最有可能的分词结果),根据最大概率路径分词;
    3. 对于新词(词库中没有的词),采用有汉字成词能力的 HMM 模型进行切分。

    jieba 分词

    下面我们进行 jieba 分词练习,第一步首先引入 jieba 和语料:

        import jieba    content = "现如今,机器学习和深度学习带动人工智能飞速的发展,并在图片处理、语音识别领域取得巨大成功。"

    (1)精确分词

    精确分词:精确模式试图将句子最精确地切开,精确分词也是默认分词。

    segs_1 = jieba.cut(content, cut_all=False)print("/".join(segs_1))

    其结果为:

    现如今/,/机器/学习/和/深度/学习/带动/人工智能/飞速/的/发展/,/并/在/图片/处理/、/语音/识别/领域/取得/巨大成功/。

    (2)全模式

    全模式分词:把句子中所有的可能是词语的都扫描出来,速度非常快,但不能解决歧义。

        segs_3 = jieba.cut(content, cut_all=True)    print("/".join(segs_3))

    结果为:

    现如今/如今///机器/学习/和/深度/学习/带动/动人/人工/人工智能/智能/飞速/的/发展///并/在/图片/处理///语音/识别/领域/取得/巨大/巨大成功/大成/成功//

    (3)搜索引擎模式

    搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

        segs_4 = jieba.cut_for_search(content)    print("/".join(segs_4))

    结果为:

    如今/现如今/,/机器/学习/和/深度/学习/带动/人工/智能/人工智能/飞速/的/发展/,/并/在/图片/处理/、/语音/识别/领域/取得/巨大/大成/成功/巨大成功/。

    (4)用 lcut 生成 list

    jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 Generator,可以使用 for 循环来获得分词后得到的每一个词语(Unicode)。jieba.lcut 对 cut 的结果做了封装,l 代表 list,即返回的结果是一个 list 集合。同样的,用 jieba.lcut_for_search 也直接返回 list 集合。

        segs_5 = jieba.lcut(content)    print(segs_5)

    结果为:

    ['现如今', ',', '机器', '学习', '和', '深度', '学习', '带动', '人工智能', '飞速', '的', '发展', ',', '并', '在', '图片', '处理', '、', '语音', '识别', '领域', '取得', '巨大成功', '。']

    (5)获取词性

    jieba 可以很方便地获取中文词性,通过 jieba.posseg 模块实现词性标注。

        import jieba.posseg as psg    print([(x.word,x.flag) for x in psg.lcut(content)])

    结果为:

    [('现如今', 't'), (',', 'x'), ('机器', 'n'), ('学习', 'v'), ('和', 'c'), ('深度', 'ns'), ('学习', 'v'), ('带动', 'v'), ('人工智能', 'n'), ('飞速', 'n'), ('的', 'uj'), ('发展', 'vn'), (',', 'x'), ('并', 'c'), ('在', 'p'), ('图片', 'n'), ('处理', 'v'), ('、', 'x'), ('语音', 'n'), ('识别', 'v'), ('领域', 'n'), ('取得', 'v'), ('巨大成功', 'nr'), ('。', 'x')]

    (6)并行分词

    并行分词原理为文本按行分隔后,分配到多个 Python 进程并行分词,最后归并结果。

    用法:

    jieba.enable_parallel(4) # 开启并行分词模式,参数为并行进程数 。jieba.disable_parallel() # 关闭并行分词模式 。

    注意: 并行分词仅支持默认分词器 jieba.dt 和 jieba.posseg.dt。目前暂不支持 Windows。

    (7)获取分词结果中词列表的 top n

        from collections import Counter    top5= Counter(segs_5).most_common(5)    print(top5)

    结果为:

    [(',', 2), ('学习', 2), ('现如今', 1), ('机器', 1), ('和', 1)]

    (8)自定义添加词和字典

    默认情况下,使用默认分词,是识别不出这句话中的“铁甲网”这个新词,这里使用用户字典提高分词准确性。

        txt = "铁甲网是中国最大的工程机械交易平台。"    print(jieba.lcut(txt))

    结果为:

    ['铁甲', '网是', '中国', '最大', '的', '工程机械', '交易平台', '。']

    如果添加一个词到字典,看结果就不一样了。

        jieba.add_word("铁甲网")    print(jieba.lcut(txt))

    结果为:

    ['铁甲网', '是', '中国', '最大', '的', '工程机械', '交易平台', '。']

    但是,如果要添加很多个词,一个个添加效率就不够高了,这时候可以定义一个文件,然后通过 load_userdict()函数,加载自定义词典,如下:

        jieba.load_userdict('user_dict.txt')    print(jieba.lcut(txt))

    结果为:

    ['铁甲网', '是', '中国', '最大', '的', '工程机械', '交易平台', '。']

    注意事项:

    jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型。

    jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。

    HanLP 分词

    pyhanlp 安装

    其为 HanLP 的 Python 接口,支持自动下载与升级 HanLP,兼容 Python2、Python3。

    安装命令为 pip install pyhanlp,使用命令 hanlp 来验证安装。

    pyhanlp 目前使用 jpype1 这个 Python 包来调用 HanLP,如果遇到:

    building '_jpype' extensionerror: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft VisualC++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    则推荐利用轻量级的 Miniconda 来下载编译好的 jpype1。

        conda install -c conda-forge jpype1    pip install pyhanlp

    未安装 Java 时会报错

    jpype.jvmfinder.JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVAHOME environment variable properly.

    HanLP 主项目采用 Java 开发,所以需要 Java 运行环境,请安装 JDK。

    命令行交互式分词模式

    在命令行界面,使用命令 hanlp segment 进入交互分词模式,输入一个句子并回车,HanLP 会输出分词结果:

    enter image description here

    可见,pyhanlp 分词结果是带有词性的。

    服务器模式

    通过 hanlp serve 来启动内置的 HTTP 服务器,默认本地访问地址为:http://localhost:8765 。

    enter image description here

    enter image description here

    也可以访问官网演示页面:http://hanlp.hankcs.com/

    通过工具类 HanLP 调用常用接口

    通过工具类 HanLP 调用常用接口,这种方式应该是我们在项目中最常用的方式。

    (1)分词

        from pyhanlp import *    content = "现如今,机器学习和深度学习带动人工智能飞速的发展,并在图片处理、语音识别领域取得巨大成功。"    print(HanLP.segment(content))

    结果为:

    [现如今/t, ,/w, 机器学习/gi, 和/cc, 深度/n, 学习/v, 带动/v, 人工智能/n, 飞速/d, 的/ude1, 发展/vn, ,/w, 并/cc, 在/p, 图片/n, 处理/vn, 、/w, 语音/n, 识别/vn, 领域/n, 取得/v, 巨大/a, 成功/a, 。/w]

    (2)自定义词典分词

    在没有使用自定义字典时的分词。

        txt = "铁甲网是中国最大的工程机械交易平台。"    print(HanLP.segment(txt))

    结果为:

    [铁甲/n, 网/n, 是/vshi, 中国/ns, 最大/gm, 的/ude1, 工程/n, 机械/n, 交易/vn, 平台/n, 。/w]

    添加自定义新词:

        CustomDictionary.add("铁甲网")    CustomDictionary.insert("工程机械", "nz 1024")    CustomDictionary.add("交易平台", "nz 1024 n 1")    print(HanLP.segment(txt))

    结果为:

    [铁甲网/nz, 是/vshi, 中国/ns, 最大/gm, 的/ude1, 工程机械/nz, 交易平台/nz, 。/w]

    当然了,jieba 和 pyhanlp 能做的事还有很多,关键词提取、自动摘要、依存句法分析、情感分析等,后面章节我们将会讲到,这里不再赘述。

    参考文献:

    1. https://github.com/fxsjy/jieba
    2. https://github.com/hankcs/pyhanlp

    点击了解更多《中文自然语言处理入门》

    第03课:动手实战中文文本中的关键字提取
    第04课:了解数据必备的文本可视化技巧
    第05课:面向非结构化数据转换的词袋和词向量模型
    第06课:动手实战基于 ML 的中文短文本分类
    第07课:动手实战基于 ML 的中文短文本聚类
    第08课:从自然语言处理角度看 HMM 和 CRF
    第09课:一网打尽神经序列模型之 RNN 及其变种 LSTM、GRU
    第10课:动手实战基于 CNN 的电影推荐系统
    第11课:动手实战基于 LSTM 轻松生成各种古诗
    第12课:完全基于情感词典的文本情感分析
    第13课:动手制作自己的简易聊天机器人
    第14课:动手实战中文命名实体提取
    第15课:基于 CRF 的中文命名实体识别模型实现
    第16课:动手实战中文句法依存分析
    第17课:基于 CRF 的中文句法依存分析模型实现
    第18课:模型部署上线的几种服务发布方式
    第19课:知识挖掘与知识图谱概述
    第20课:Neo4j 从入门到构建一个简单知识图谱
    第21课:中文自然语言处理的应用、现状和未来
    Chat:NLP 中文短文本分类项目实践(上)
    NLP 中文短文本分类项目实践(下)

    阅读全文: http://gitbook.cn/gitchat/column/5b10b073aafe4e5a7516708b

    展开全文
  • NLTK自然语言处理入门

    2019-05-16 22:29:04
    Python NLTK 自然语言处理入门与例程 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?...
  • Python NLTK 自然语言处理入门与例程

    万次阅读 多人点赞 2018-02-26 09:59:58
    Python NLTK 自然语言处理入门与例程在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。那么 NLP 到底是什么?学习...
  • 随着对于深度学习研究的逐渐深入,在自然语言处理领域,出现了很多深度学习的模型,这些模型相比于传统的机器学习方法,在准确率等指标上面有了很大的提高。本课程拟就深度学习在自然语言处理领域的应用,从基础开始...
  • 《中文自然语言处理入门》NLP 作为 AI 技术领域中重要的分支,随着其技术应用范围不断扩大,在数据处理领域占有越来越重要的地位。本达人课,作为中文自然语言处理边学边实战...
  • 自然语言处理入门读物

    千次阅读 2016-12-13 19:23:31
    自然语言处理入门读物本文目前研二,已经接触自然语言处理有一年的时间(半路出家),下面写一点自己关于自然语言处理的心得(纯属个人见解),先从入门学习开始写吧。书籍-理论篇书籍是人类进步的阶梯,这个一点不...
  • Python NLTK 自然语言处理入门与例程 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?...
  • 自然语言处理入门 自然语言的概念 ​自然语言的理解 自然语言处理的概念 自然语言处理主要步骤 自然语言处理的应用方向 自然语言的概念 自然语言的理解 人工智能早期研究的领域之一。 从微观上讲,语言...
  • 接上篇文章《自然语言处理入门小白从0开始学自然语言处理+学习笔记(一)》 1、自然语言处理学习路径规划 自然语言处理(NLP)开发环境搭建√ 分词demo(搭建helloworld工程)√ 案例:nlp实现预测天气冷暖感知度...
  • 在此记录下一些和自然语言处理入门相关的网址: 有关书籍和视频推荐:http://blog.csdn.net/qfnu_cjt_wl/article/details/53606168 知乎上相关话题(如何找文献,写论文等):...
  • hanlp上相关代码文件面向生产环境的多语种自然语言处理工具包,基于 TensorFlow 2.x,目标是普及落地最前沿的NLP技术。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。目前,基于深度学习的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,829
精华内容 1,131
关键字:

自然语言处理入门