自然语言处理日常总结

1.什么是自然语言?
定义为一组规则或符号的集合,组合集合中的符号来传递各种信息。

2.NLP 应用
机器翻译 计算机具备将 一种语言翻译成另 一种语言的能力
情感分析 计算机能够判断用户评论是否积极[二分类]
智能问答 计算机能够正确回答输入的问题
文摘生成 计算机能够准确归纳 、总结并产生文本摘要
文本分类 计算机能够采集各种文章, 进行主题分析,从而进行自动分类
舆论分析 计算机能够判断目前舆论的导向
知识图谱 知识点相互连接而成的语义网络

3.NLP 知识结构

自然语言处理日常总结_第1张图片

4.NLP 3个层面:
词法分析 句法分析 语义分析
1.词法分析:包括汉语的分词和词性标注这两部分
2.句法分析:对输入的文本以句子为单位,进行分析以得到句子的句法结构的
短语结构句法体系 依存结构句法体系 深层文法结构依存体系
3.语义分析:理解句子表达的真实语义

5.正则 和Numpy基础

import re 
text_string = '文本最重要的来源无疑是网络.我们要把网络中的文本获取形成一文本数据库.用一个爬虫抓取到网络中的信息 .爬取的策略有广度爬取和 深度爬取 根据用的需求.爬虫可以有主爬虫和通用爬虫之分.'
text_string2 = ['重要的今年第七号台风 23 日登陆广东东部沿海地区',' 上海发布车库销售监管通知违规者暂停网签资格 ','[紧要的] 中国对印连发强硬信息,印度急切需要结束对峙']  #是一个list
regex = '爬虫' #匹配含有爬虫的
regex2 = '爬.'
regex3 = '^爬虫'  #以爬虫开始的字符串
regex4 = '网络$'  #以网络结尾的字符串
regex5 = '^[重紧]..'  #[bcr]at  匹配 bat cat rat   匹配重要的 紧要的
regex6 = '^\[[重紧]..\]'  #[bcr]at  匹配 bat cat rat   转义匹配[重要的] [紧要的]
p_string = text_string.split('.')# 以句号为分隔符通过 split 切分
for line in p_string:
    if re.search(regex4, line) is not None: #search 方法是用来查找匹配当前行是否匹配这
        print(line) #如果匹配到 打印这行信息

for line in text_string2:
    if re.search(regex6,line) is not None:
        print(line)
    else:
        print('not match')


if re.search( r"\\","I have one nee\dle") is not None:  #转义
    print("match it")
else:
    print("not match")



year_strings=[]
strings = ['War of 1812' , 'There are 5280 feet to a mile' , 'Happy New Year 20161']
for string in strings:
    if re. search( '[1-2][0-9]{3}',string): #字符串有英文有数字 匹配其中的数字部分并且是在 1000 ,.... 2999 之间 {3} 代表的是重复之前的 [0-9] 三次 [0-9] [0-9] [0-9] 的简化写法
        year_strings.append(string)
print(year_strings)


years_string = '2016 was a good year, but 2017 will be better!'
years = re.findall('[2][0-9]{3}' ,years_string)  #匹配带正则那部分字符串  search 和 findall 的不同
print(years)

numpy 广播: :当有两个维度不同的数纽 aηay 的时候,
可以用低维的数纽复制成高维数纽参与运算 因为 Numpy 运算的时候需要结构相同。
numpy主要结构 ndarray 多维数组

import  numpy as np
vector = np.array([1,2,3,4])
matrix = np.array([[1,'Tim'],[2,'Joy'],[3,'wd']])
print(vector)
print(matrix)
#获取本地数据

#nf1=np.genfromtxt("G:\SA\entry.csv",dtype='U75',skip_header=0,delimiter=",")
#print(nf1)


#数组矩阵的比较会产生布尔值
matrix= np.array([[1,2,3],[4,5,6]])
m = (matrix == 5)
print(m)

#numpy 可以利用布尔值来替换  用来 替换空值
vector=np.array([5,10,15,2,'','',5])
ip = (vector=='')
vector[ip]=50
print(vector)

你可能感兴趣的:(NLP)