精华内容
下载资源
问答
  • 产品价值自然语言处理是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,已经广泛应用在电商、文化娱乐、金融、物流等行业客户的多项业务中。自然语言处理API可帮助用户搭建内容搜索、内容推荐、舆情识别及...

    产品价值

    自然语言处理是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,已经广泛应用在电商、文化娱乐、金融、物流等行业客户的多项业务中。自然语言处理API可帮助用户搭建内容搜索、内容推荐、舆情识别及分析、文本结构化、对话机器人等智能产品,也能够通过合作,定制个性化的解决方案。

    产品服务

    支持文本实体抽取、文本分类、关键短语抽取、情感分析、关系抽取、商品评价解析等NLP定制化算法能力,用户无需拥有丰富的算法背景,仅需标注或上传适量文档数据,即可通过平台快速创建算法模型并使用。

    适用文本实体抽取、文本分类、关键短语抽取、短文本匹配、关键抽取、简历抽取、商品评价解析、情感分析等

    其产品优势有:

    易用:使用流程简单,无需工程与算法背景

    快捷:全链路优化,平均训练模型耗时<30分钟

    专业:专业技术沉淀,500+标注数据时,模型准确率预计>85%

    将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列,同时保持对数据、模型的不断迭代更新,目前支持简体中文、英文及泰文。

    适用文本搜索、指令解析、自动回答。

    其产品优势有:

    多粒度支持:包含基本语义粒度,更小的检索粒度以及扩展检索粒度

    海量数据沉淀:基于阿里核心业务沉淀,在通用、电商、文娱领域都处于领先水平

    多语言支持:除中文外,还支持英文小粒度分词、泰语分词

    使用灵活:通过多年的语料及算法研发积累,可在短时间内分析海量文本,帮助客户更好更精确的挖掘出文本价值

    词性标注

    通过词性标注服务,用户可以快速的为每一个词附上对应的词性,结合分词服务,可以快速进行更深层次的文本挖掘处理,无需担心新词发现、歧义消除等问题。

    适用指令搜索、文本解析、关键词发现。

    命名实体

    我们为您提供的命名实体服务,可以帮助您快速识别文本中的实体,进而挖掘各实体间的关系,是进行深度文本挖掘,知识库构建等常用自然语言处理领域里的必备工具。目前主要针对电商领域,识别品牌、产品、型号等,同时也包括一些通用领域实体如人名、地名、机构名、时间日期等。

    适用文本搜索、舆情分析、知识库构建。

    情感分析

    又称倾向性分析,或意见挖掘,它是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。利用情感分析能力,可以针对带有主观描述的自然语言文本,自动判断该文本的情感正负倾向并给出相应的结果。

    适用于舆论分析、影视分析、人物口碑追踪。

    文本信息抽取

    抽取文本中具有特定意义的实体,当前已支持合同领域的文本信息抽取。如需更多实体类型的定制化抽取。

    适用于审核审计、搜索导航、知识库构建

    智能文本分类

    按照给定类目体系对输入文本进行自动分类,当前已支持新闻资讯领域和电商领域的文本分类。如需更多类目体系的定制化,请使用NLP自学习平台。

    适用于个性化推荐、文本聚合、内容管理

    中心词提取

    多语言中心词(目前支持中文及英文)基于海量数据,使用电商标题中心词以及类目进行训练,通过给每个词计算一个相关性分数来衡量每个词与句子的相关性程度,进而识别并提取出句子的中心词。适用于提取电商搜索query、标题及其他类似短文本(一般小于25个词)的中心词。

    适用于商品搜索、商品推荐、相关性计算

    基于电商行业的大量语料研发,对消费者历史评价和新增评价的商品维度属性自动解析,高效甄别正负面评价,当前已支持24个行业类别。如需更多行业与商品维度的定制化,请使用NLP自学习平台。

    适用于商品口碑分析、问题追踪、属性分类

    展开全文
  • 也看到了有多种情感分析的方法,有用机器学习算法来学习,不过这种方法需要自己标注一些训练数据,这个工作量是很大的,我也研究过nltk包的使用,但研究了半天始终是有关英文的自然语言处理,对于中文来说有些方法不...

    再此之前我一直在寻找情感分析的博客,也看到了有多种情感分析的方法,有用机器学习算法来学习,不过这种方法需要自己标注一些训练数据,这个工作量是很大的,我也研究过nltk包的使用,但研究了半天始终是有关英文的自然语言处理,对于中文来说有些方法不适用,偶然看到snownlp包,专为中文自然语言处理写的工具,就拿来研究了一番,下面就把他的一些功能记录一下,有什么新的功能或是错误的地方请指点,谢谢。
    o,在这加点说明,我看其他博主都说要把文本内容转换成Unicode格式,但我在这没有转也运行成功了,我的运行环境是Anaconda+python3.6,此为pycharm中运行的结果。

    from snownlp import SnowNLP
    import jieba
    
    #snownlp库的使用
    #0,情感分析
    text_ = "今天我很高兴,今天我很愤怒。"
    text0 = "只看楼主大图,收藏离家最近的天街边上最近摆了很多这种盲选盒子收藏最吸引我的当然是号称今天会放出242个苹果,然后,选了一个88号收藏扫码支付领到一个,拿到手有点沉,难道,是个苹果么,收藏打开好失望,一个三无产品玻尿酸和一张抽奖券,"
    text1 = "只看楼主大图,昨晚下班之后跟朋友去看电影,路过杭州大厦中央商城,看到一家奈雪,茶,听说这是个网红牌子,刚好朋友有个买一送一对的券,我们就进去了解了一下,看了看价格有点小贵啊,不是有券我也舍不得来吃,收藏本来想点新品霸气车厘子,但是服务员说限量的已经买完了,呵呵,我就点了霸气芝士芒果,芝士是焦盐的,感觉不错,不甜不腻,喝到下面有很多芒果肉,好吃,收藏店里还有卖蛋糕面包的,我们就买了个车厘子面包,朋友说奶油很好吃,不会腻,而且也很软,可以给个赞收藏收藏,7,8,0,0,"
    text2 = "新时代家居东面那条路与留祥路石祥路交界处,早上大概7点半左右吧,不止一次了,今天我们又碰到了,一大早在公路上打灰机,你们觉得这种人变态吗,今天我们报警了,结果他逃了,本来想拍个照附带上传,但是他逃到河对面,照相机啊没电了,手机拍不到那么远的,如果有人在那也碰到的话,就马上报警,他骑个电瓶车的,"
    s_ = SnowNLP(text_)
    #切分成句子
    for sentence in s_.sentences:
        print(sentence)
    #今天我很高兴
    #今天我很愤怒
    
    #每个句子的情感得分,这里的分数是指正向情感的概率,看出来结果还是比较好的
    s1 = SnowNLP(s_.sentences[0])
    s1.sentiments
    # 0.6732684101105153
    s1 = SnowNLP(s_.sentences[1])
    s1.sentiments
    # 0.07763913772213482
    
    #整个句子的情感得分
    print('情感指数',s_.sentiments) 
    #情感指数 0.7926514785564073
    
    #1,中文分词
    s = SnowNLP('今天天气真的不错。')
    print(s.words)
    #['今天', '天气', '真的', '不错', '。']
    print(jieba.lcut('今天天气真的不错。'))
    #['今天天气', '真的', '不错', '。']
    
    '''
    在这我和jieba分词进行了比较,snownlp分词能力还是不如jieba,还有后面的词性标注,词频,文本相似,
    建议不用这中方法,jieba在词性标注,词频方面做的比这好,至于文本相似也有好多方法,都比这个好,
    不管在操作和结果上。可以参考我的另一篇(https://blog.csdn.net/python3_i_know/article/details/86598936)
    文本摘要和关键词提取这两个方法还是可以的
    '''
    
    #2,词性标注
    print(list(s.tags))
    #[('今天', 't'), ('天气', 'n'), ('真的', 'd'), ('不错', 'a'), ('。', 'w')]
    
    #3,转成拼音
    print(s.pinyin)
    #['jin', 'tian', 'tian', 'qi', 'zhen', 'de', 'bu', 'cuo', '。']
    
    #4,繁体转简体
    #print(s.han)
    
    #5,提取关键字,默认5个词
    text = """
    自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
    它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
    自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
    因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
    所以它与语言学的研究有着密切的联系,但又有重要的区别。
    自然语言处理并不是一般地研究自然语言,
    而在于研制能有效地实现自然语言通信的计算机系统,
    特别是其中的软件系统。因而它是计算机科学的一部分。
    """
    s1 = SnowNLP(text)
    print(s1.keywords(3))
    #['语言', '自然', '计算机']
    
    #6,文本摘要,默认5句
    print(s1.summary(5))
    #['因而它是计算机科学的一部分', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '所以它与语言学的研究有着密切的联系', '这一领域的研究将涉及自然语言']
    
    #7,分割成句子
    print(s1.sentences)
    #['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '因此', '这一领域的研究将涉及自然语言', '即人们日常使用的语言', '所以它与语言学的研究有着密切的联系', '但又有重要的区别', '自然语言处理并不是一般地研究自然语言', '而在于研制能有效地实现自然语言通信的计算机系统', '特别是其中的软件系统', '因而它是计算机科学的一部分']
    
    #8,词频
    print(s.tf)
    #[{'今': 1}, {'天': 1}, {'天': 1}, {'气': 1}, {'真': 1}, {'的': 1}, {'不': 1}, {'错': 1}, {'。': 1}]
    
    #9,逆向文件频率,这个我没搞懂它是干什么用的,知道的大佬请指点
    print(s.idf)
    #{'今': 1.7346010553881064, '天': 1.0986122886681096, '气': 1.7346010553881064, '真': 1.7346010553881064, '的': 1.7346010553881064, '不': 1.7346010553881064, '错': 1.7346010553881064, '。': 1.7346010553881064}
    
    #10,文本相似
    print(s.sim(['今']))
    #[1.7346010553881066, 0, 0, 0, 0, 0, 0, 0, 0]
    
    
    

    另一篇参考jieba模块主要功能

    展开全文
  • 使用Elasticsearch,Twitter,新闻头条以及Python自然语言处理情感分析的股市分析器和股票预测器。 Twitter和新闻头条上的情绪在多大程度上影响股票价格? 让我们找出... 关于 stocksight是一款开源股票市场分析...
  • 实战电影评论情感分析  情感分析是一段文字表达的情绪状态。其中,一段文本可以使一个句子、一个段落或者一个文档。主要涉及两个问题:文本表达和文本分类。在深度学习出现之前,主流的表示方法有BOW(词袋模型)和...

    实战电影评论情感分析

            情感分析是一段文字表达的情绪状态。其中,一段文本可以使一个句子、一个段落或者一个文档。主要涉及两个问题:文本表达和文本分类。在深度学习出现之前,主流的表示方法有BOW(词袋模型)和topic model(主题模型),分类模型主要有SVM和LR。

             载入数据:IMDB情感分析数据集,训练集和测试集分别包含了25000条已标注的电影评论,满分了10分,小于等于4为负面评论。

    # -*- coding: utf-8 -*-
    
    import numpy as np 
    # 加载已训练好的词典向量模型,包含400000的文本向量,每行有50维的数据
    words_list = np.load('wordsList.npy')
    print('载入word列表')
    words_list = words_list.tolist()   # 转化为list
    words_list = [word.decode('UTF-8') for word in words_list]
    word_vectors = np.load('wordVectors.npy')
    print('载入文本向量')
    
    print(len(words_list))
    print(word_vectors.shape)
    
    Home_index = words_list.index("home")
    print(word_vectors[Home_index])
    
    # 加载电影数据
    import os
    from os.path import isfile, join
    pos_files = ['pos/' + f for f in os.listdir('pos/') if isfile(join('pos/', f))]
    neg_files = ['neg/' + f for f in os.listdir('neg/') if isfile(join('neg/', f))]
    num_words = []
    for pf in pos_files:
    	with open(pf, "r", encoding='utf-8') as f:
    		line = f.readline()
    		counter = len(line.split())
    		num_words.append(counter)
    print('正面评价完结')
    
    for pf in neg_files:
    	with open(pf, "r", encoding='utf-8') as f:
    		line = f.readline()
    		counter = len(line.split())
    		num_words.append(counter)
    print('负面评价完结')
    
    num_files = len(num_words)
    print('文件总数', num_files)
    print('所有的词的数量', sum(num_words))
    print('平均文件词的长度', sum(num_words)/len(num_words))
    
    '''
    # 可视化
    import matplotlib
    import matplotlib.pyplot as plt
    matplotlib.use('qt4agg')
    # 指定默认字体
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    matplotlib.rcParams['font.family'] = 'sans-serif'
    #%matplotlib inline
    plt.hist(num_words, 50, facecolor='g')
    plt.xlabel('文本长度')
    plt.ylabel('频次')
    plt.axis([0, 1200, 0, 8000])
    plt.show()
    '''
    
    # 大部分文本都在230之内
    max_seg_len = 300
    
    # 将文本生成一个索引矩阵,得到一个25000x300矩阵
    import re
    strip_special_chars = re.compile("[^A-Za-z0-9 ]+")
    
    def cleanSentence(string):
    	string = string.lower().replace("<br />", " ")
    	return re.sub(strip_special_chars, "", string.lower())
    print('保存idxMatrix...')
    max_seg_num = 300
    ids = np.zeros((num_files, max_seg_num), dtype="int32")
    file_count = 0
    '''
    for pf in pos_files:
    	with open(pf, "r", encoding="utf-8") as f:
    		indexCounter = 0
    		line = f.readline()
    		cleanedLine = cleanSentence(line)
    		split = cleanedLine.split()
    		for word in split:
    			try:
    				ids[file_count][indexCounter] = words_list.index(word)
    			except ValueError:
    				ids[file_count][indexCounter] = 399999 # 未知的词
    			indexCounter = indexCounter + 1
    			if indexCounter >= max_seg_num:
    				break
    		file_count = file_count + 1
    		print(file_count)
    print('保存完成1')
    for nf in neg_files:
    	with open(nf, "r", encoding="utf-8") as f:
    		indexCounter = 0
    		line = f.readline()
    		cleanedLine = cleanSentence(line)
    		split = cleanedLine.split()
    		for word in split:
    			try:
    				ids[file_count][indexCounter] = words_list.index(word)
    			except ValueError:
    				ids[file_count][indexCounter] = 399999 # 未知的词
    			indexCounter = indexCounter + 1
    			if indexCounter >= max_seg_num:
    				break
    		file_count = file_count + 1
    
    # 保存到文件
    np.save('idxMatrix', ids)
    print('保存完成2')
    '''
    
    # 模型设置
    batch_size = 24
    lstm_units = 64
    num_labels = 2
    iterations = 200000
    max_seg_num = 250
    ids = np.load('idsMatrix.npy')
    
    # 返回一个数据集的迭代器, 返回一批训练集合
    from random import randint
    def get_train_batch():
    	labels = []
    	arr = np.zeros([batch_size, max_seg_num])
    	for i in range(batch_size):
    		if (i % 2 == 0):
    			num = randint(1, 11499)
    			labels.append([1, 0])
    		else:
    			num = randint(13499, 24999)
    			labels.append([0, 1])
    		arr[i] = ids[num-1: num]
    	return arr, labels
    
    def get_test_batch():
    	labels = []
    	arr = np.zeros([batch_size, max_seg_num])
    	for i in range(batch_size):
    		num = randint(11499, 13499)
    		if (num <= 12499):
    			labels.append([1, 0])
    		else:
    			labels.append([0, 1])
    		arr[i] = ids[num-1:num]
    	return arr, labels
    
    num_dimensions = 300  # Dimensions for each word vector
    
    import tensorflow as tf
    tf.reset_default_graph()
    labels = tf.placeholder(tf.float32, [batch_size, num_labels])
    input_data = tf.placeholder(tf.int32, [batch_size, max_seg_num])
    
    data = tf.Variable(tf.zeros([batch_size, max_seg_num, num_dimensions]), dtype=tf.float32)
    data = tf.nn.embedding_lookup(word_vectors, input_data)
    
    # 配置LSTM网络
    lstmCell = tf.contrib.rnn.BasicLSTMCell(lstm_units)
    lstmCell = tf.contrib.rnn.DropoutWrapper(cell=lstmCell, output_keep_prob=0.75) # 避免一些过拟合
    value, _ = tf.nn.dynamic_rnn(lstmCell, data, dtype=tf.float32)
    
    # 第一个输出可以被认为是最后的隐藏状态,该向量将重新确定维度,然后乘以一个权重加上偏置,获得最终的label
    weight = tf.Variable(tf.truncated_normal([lstm_units, num_labels]))
    bias = tf.Variable(tf.constant(0.1, shape=[num_labels]))
    value = tf.transpose(value, [1, 0, 2])
    last = tf.gather(value, int(value.get_shape()[0]) - 1)
    prediction = (tf.matmul(last, weight) + bias)
    
    # 预测函数以及正确率评估参数
    correct_pred = tf.equal(tf.argmax(prediction, 1), tf.argmax(labels, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
    
    # 将标准的交叉熵损失函数定义为损失值,选择Adam作为优化函数
    loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=labels))
    optimizer = tf.train.AdamOptimizer().minimize(loss)
    
    #sess = tf.InteractiveSession(config=tf.ConfigProto(allow_soft_placement, log_device_placement))
    sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=False))
    
    #saver = tf.train.Saver()
    #saver.restore(sess, tf.train.latest_checkpoint('models'))
    
    iterations = 10
    for i in range(iterations):
      next_batch, next_batch_labels = get_test_batch()
      print("正确率:", (sess.run(
          accuracy, {input_data: next_batch, labels: next_batch_labels})) * 100)
    
    '''
    # 使用tensorboard可视化损失值和正确值
    import datetime
    sess = tf.InteractiveSession()
    #tf.device("/cpu:0")
    saver = tf.train.Saver()
    sess.run(tf.global_variables_initializer())
    
    tf.summary.scalar('Loss', loss)
    tf.summary.scalar('Accuracy', accuracy)
    merged = tf.summary.merge_all()
    logdir = "tensorboard/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + "/"
    writer = tf.summary.FileWriter(logdir, sess.graph)
    
    for i in range(iterations):
    	# 下个批次的数据
    	nextBatch, nextBatchLabels = get_train_batch();
    	sess.run(optimizer, {input_data: nextBatch, labels: nextBatchLabels})
    	# 每50次写入一次leadboard
    	if (i % 50 == 0):
    		summary = sess.run(merged, {input_data: nextBatch, labels: nextBatchLabels})
    		writer.add_summary(summary, i)
    	# 每10,000次保存一个模型
    	if (i % 10000 == 0 and i != 0):
    		save_path = saver.save(sess, "models/pretrained_lstm.ckpt", global_step=i)
    		print("saved to %s" % save_path)
    
    writer.close()
    '''
    
    

     

     

     

     

     

    展开全文
  • python自然语言处理库 自然语言处理 (简称NLP )最好描述为“语音和文本的AI”。 语音命令,语音和文本翻译,情感分析,文本摘要以及许多其他语言应用程序和分析背后的魔力,通过深度学习极大地改善了自然语言处理...

    python自然语言处理库

    自然语言处理 (简称NLP )最好描述为“语音和文本的AI”。 语音命令,语音和文本翻译,情感分析,文本摘要以及许多其他语言应用程序和分析背后的魔力,通过深度学习极大地改善了自然语言处理。

    Python语言为包括NLP在内的各种机器学习提供了便捷的前端。 实际上,在Python生态系统中有很多NLP财富可供选择。 在本文中,我们将探讨可用于Python的每个NLP库-它们的用例,优缺点,以及普遍的流行程度。

    [ 同样在InfoWorld上:6个您不想错过的Python新功能 ]

    请注意,这些库中的某些库提供了其他库所公开的相同功能的更高版本,从而使该功能更易于使用,但会牺牲一些精度或性能。 您将要选择一个既适合您的专业水平又适合项目性质的库。

    核心自然语言处理

    斯坦福大学的产品CoreNLP库被构建为可用于生产的自然语言处理解决方案,能够大规模提供NLP预测和分析。 CoreNLP用Java编写,但是可以使用多个Python软件包和API,包括一个称为StanfordNLP的本地Python NLP库。

    CoreNLP包括各种语言工具-语法标记,命名实体识别,解析,情感分析等。 它被设计为与人类语言无关,目前除英语外还支持阿拉伯语,中文,法语,德语和西班牙语( 可从第三方获得俄语,瑞典语和丹麦语的支持)。 CoreNLP还包括一个Web API服务器 ,这是一种无需太多额外工作即可提供预测的便捷方法。

    StanfordNLP开始的最简单的地方是CoreNLP的Python包装器,这是Stanford NLP Group创建的参考实现。 除了有据可查之外,StanfordNLP还定期维护; 许多其他CoreNLP的Python库在一段时间内未更新。

    CoreNLP还支持NLTK的使用,NLTK是下面讨论的主要Python NLP库。 从3.2.3版开始,NLTK在其解析器中包含与CoreNLP的接口。 只要确保使用正确的API即可

    CoreNLP的明显缺点是您需要熟悉Java才能启动并运行它,但是仔细阅读文档并不能做到。 另一个障碍可能是CoreNLP的许可。 整个工具包均根据GPLv3进行了许可,这意味着您在分发给他人的专有软件中使用任何软件都需要获得商业许可

    Gensim

    Gensim仅做两件事,但是做得非常好。 它的重点是统计语义-分析文档的结构,然后根据相似性对其他文档评分。

    Gensim可以通过将文档流式传输到其分析引擎并逐步对其进行无人监督的学习来处理非常大的文本。 它可以创建多种类型的模型,每种模型都适合不同的场景:Word2Vec,Doc2Vec,FastText和Latent Dirichlet分配。

    Gensim的详细文档包括教程和操作指南,它们解释了关键概念并通过动手示例进行了说明。 通用食谱也可以在Gensim GitHub存储库中找到

    [ 不要错过InfoWorld的2020年度技术奖获奖者:年度最佳软件开发,云计算,数据分析和机器学习产品 ]

    NLTK

    Natural Language Toolkit (简称NLTK)是Python自然语言处理库中最著名,功能最强大的工具。 开箱即用,可以使用许多语料库(数据集)和经过训练的模型 ,因此您可以立即开始尝试NLTK。

    如文档所述,NLTK提供了多种用于处理文本的工具:“分类,标记化,词干,标记,解析和语义推理。” 它还可以与某些第三方工具一起使用以增强其功能。

    请记住,NLTK是由学术研究受众创建的并且是为学术研究受众创建的。 它不是设计用于在生产环境中服务于NLP模型的。 文档也很少。 甚至操作方法也很薄。 另外,没有64位二进制文​​件。 您需要安装32位版本的Python才能使用它。 最后,NLTK也不是最快的库,但是可以通过并行处理来加快速度。

    如果您决定利用NLTK的内在特性,则可以改用TextBlob(如下所述)开始。

    模式

    如果您需要做的就是刮一个受欢迎的网站并分析发现的内容,请访问Pattern 这个自然语言处理库比这里介绍的其他库小得多,而且狭窄,但这也意味着它专注于真正做好一项常见的工作。

    Pattern带有内置的内置功能,可用于抓取许多流行的Web服务和来源(Google,Wikipedia,Twitter,Facebook,通用RSS等),所有这些都可以作为Python模块使用(例如, from pattern.web import Twitter )。 。 您无需重新设计从这些站点获取数据的方式,而无需担心它们的所有怪异之处。 然后,您可以对数据执行各种常见的NLP操作,例如情感分析。

    Pattern公开了它的一些底层功能,允许您根据需要直接使用NLP函数,n-gram搜索,向量和图形。 它还具有一个内置的帮助程序库,可用于处理常见的数据库(将来将使用MySQL,SQLite和MongoDB),从而使处理以前会话中存储的或从第三方获得的表格数据变得更加容易。

    [ 也在InfoWorld上:2020年的人工智能预测 ]

    多种语言

    顾名思义, Polyglot使自然语言处理应用程序能够一次处理多种语言。

    Polyglot中的NLP功能呼应了其他NLP库中的功能:标记化,命名实体识别,词性标记,情感分析,单词嵌入等。对于这些操作,Polyglot提供了可与所需语言一起使用的模型。

    请注意,Polyglot的语言支持因功能而异。 例如,令牌化系统支持近200种语言(主要是因为它使用Unicode文本分段算法),情感分析支持136种语言,但是词性标记仅支持16种语言。

    NL

    PyNLPI (发音为“菠萝”)仅具有自然语言处理功能的基本花名册,但它具有针对NLP数据格式的某些真正有用的数据转换和数据处理功能。

    PyNLPI中的大多数NLP函数用于基本任务,例如令牌化或n-gram提取,以及一些在NLP中有用的统计函数,例如字符串之间的Levenshtein距离或Markov链。 为了方便起见,这些功能都是在纯Python中实现的,因此它们不太可能具有生产级的性能。

    但是PyNLPI很适合处理NLP领域中涌现的一些更奇特的数据类型和格式。 PyNLPI可以读取和处理GIZA,Moses ++,SoNaR,Taggerdata和TiMBL数据格式,并致力于将整个模块与FoLiA配合使用, FoLiA是XML文档格式,用于注释诸如语料库(用于翻译或其他分析的文本体)之类的语言资源。 。

    每当您处理这些数据类型时,您都希望获得PyNLPI。

    [ 也在InfoWorld上:深度学习与机器学习:理解差异 ]

    空间

    SpaCy利用Python的便利性和Cython的速度,被称为“工业强度的自然语言处理”。 它的创造者声称,它在速度,模型尺寸和准确性方面都比NLTK,CoreNLP和其他竞争对手好。 SpaCy的主要缺点是它相对较新,因此仅涵盖英语和其他几种(主要是欧洲)语言。 也就是说,在撰写本文时,SpaCy已达到2.2版。

    SpaCy包括在那些竞争性框架中发现的几乎所有功能:语音标记,依赖项解析,命名实体识别,标记化,句子分割,基于规则的匹配操作,单词向量等等。 SpaCy还包括针对GPU操作的优化-既用于加速计算,又用于在GPU上存储数据以避免复制。

    Spacy的文档非常出色。 安装向导会为Windows,Linux和macOS以及不同的Python环境(pip,conda等)生成命令行安装操作。 语言模型作为Python软件包安装,因此可以作为应用程序依赖项列表的一部分进行跟踪。

    TextBlob

    TextBlob是Pattern和NLTK库的友好前端,将这两个库都包装在易于使用的高级界面中。 使用TextBlob,您可以减少花在复杂的Pattern和NLTK上的时间,而将更多的时间用于获得结果。

    TextBlob通过利用本机Python对象和语法来简化方法。 快速入门示例显示了如何将要处理的文本简单地视为字符串,而常见的NLP方法(如词性标记)可用作这些字符串对象上的方法。

    [ 通过InfoWorld的App Dev Report新闻通讯了解软件开发中的热门话题 ]

    TextBlob的另一个优点是,您可以“放开引擎盖”,并随着自己变得越来越自信而改变其功能。 可以根据需要交换许多默认组件,例如情感分析系统或令牌生成器。 您还可以创建将对象(情绪分析器,分类器等)组合在一起的高级对象,并以最小的努力重复使用它们。 这样,您可以使用TextBlob快速创建原型,然后稍后对其进行优化。

    翻译自: https://www.infoworld.com/article/3519413/8-great-python-libraries-for-natural-language-processing.html

    python自然语言处理库

    展开全文
  • 这是对涂铭等老师撰写的《Python自然语言处理实战:核心技术与算法》中第8章情感分类技术的学习笔记。 这里写目录标题实战电影评论情感分析总结 实战电影评论情感分析 """ 首先引入2个数据集合,400 000的词典以及...
  • 《精通Python自然语言处理》 Deepti Chopra(印度) 王威 译 第七章 情感分析:我很快乐 情感分析(情感生成)被定义为确定一个字符序列背后所隐含的情感信息的过程。 7.1情感分析简介 对电影评价进行情感分析: ...
  • Python自然语言处理-BERT模型实战

    千人学习 2019-10-21 21:54:40
    购买课程后,添加小助手微信(微信号:itxy41)回复【唐宇迪】 进入学习群,获取唐宇迪老师答疑 Python自然语言处理-BERT模型实战课程旨在帮助同学们快速掌握当下NLP领域最核心的算法模型BERT的原理构造与应用实例。...
  • 本书是学习自然语言处理的一本综合学习指南,介绍了如何用 Python 实现各种 NLP 任务,以帮助读者创建基于真实生活应用的项目。分别涉及字符串操作、统计语言建模、形态学、词性标注、语法解析、语义分析、情感分析...
  • 第7节练习 朴素贝叶斯 情感分类 题干 We want to build a naïve bayes sentiment classifier using add -1 smoothing, as described in the lecture (not binary naïve bayes, regular naïve bayes). Here is our...
  • 今天,我们要根据我们的经验来概述和比较最流行,最有用的自然语言处理库。  今天,自然语言处理(NLP)变得非常流行,在深度学习发展的背景下,自然语言处理(NLP)变得尤其引人注目。NLP是人工智能的一个领域,旨在...
  • 5、猎场热门短评情感分析。 6、附录(python 画词云图) 什么是SnowNLP? snowNLP,可以分词,标注,还可以进行情绪分析。 SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写...
  • Python自然语言处理工具小结

    千次阅读 2017-11-28 10:28:52
    1 Python 的几个自然语言处理工具 NLTK:NLTK 在用 Python 处理自然语言的工具中处于领先的地位。它提供了 WordNet 这种方便处理词汇资源的借口,还有分类、分词、除茎、标注、语法分析、语义推理等类库。...
  • 7.1 情感分析简介 情感分析可以认为是一个在自然语言上执行的任务。这里,对用自然语言表达的句子或单词执行了计算,以便确定它们是在表达积极的、消极的还是中性的情感。情感分析是一个主观的任务,因为它提供了...
  • 自然语言处理的应用包括机器翻译、情感分析、智能问答、信息提取、语言输入、舆论分析、知识图谱等方面。也是深度学习的一个分支。首先介绍一下Python自然语言处理工具包: 1.NLTK工具包 NLTK 在用 Python 处理...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 307
精华内容 122
关键字:

python自然语言处理情感分析

python 订阅