NLP
文章平均质量分 86
料理码王
什么都不会!
展开
-
【实体关系抽取】OneRel和TPLinker两篇方案的不同之处
实体关系一次性抽取论文——《OneRel》和《TPLinker》所采用的方法是不同的,如果真的像OneRel实验部分所表述的那样,那么OneRel是非常有价值的一次探索,它从图嵌入技术中得到启发,改变了边和关系的交互方法,理应效果好一些。但是想使用到工业上的话,还有很长的一段路要走。原创 2022-10-17 14:29:13 · 2605 阅读 · 0 评论 -
NLP应用:情感分析和自然语言推断
重点介绍如何应用 DL表征学习*来解决NLP问题;讨论两种经典的 NLP任务:情感分析(针对单个文本) 和 自然语言推断(针对文本对)原创 2022-05-06 03:30:30 · 1741 阅读 · 0 评论 -
自然语言处理:预训练
Bert预训练模型的预处理、搭建和训练原创 2022-04-30 02:15:42 · 682 阅读 · 0 评论 -
注意力机制详解(脉络版)
注意力机制详细解读,让你一次性搞懂注意力机制的原理。原创 2022-04-26 22:00:29 · 1944 阅读 · 0 评论 -
解决seq2seq+attention机器翻译中的技术小难题
1 源码首先上源码:https://github.com/keon/seq2seq通常我们使用这个源代码来学习机器翻译的模型架构,但是会遇到诸多小技术问题。2 python -m spacy download en 提示服务器连接一直失败安装不上官方描述的以下命令行是无法使用的,会出现连接不上的错误:python -m spacy download depython -m spacy download en于是乎,需要使用这两个包de_core_news_sm-2.3.0.tar.gz和en原创 2022-02-26 15:09:50 · 690 阅读 · 0 评论 -
问答系统中的递归和动态规划
递归——分词def full_segmentation(input_str, words): # 输入字符串 字典 if input_str == '': return [[]] else: result = [] for i in range(1, len(input_str) + 1): if input_str[:i] in words: for remain_segme原创 2020-08-22 19:21:10 · 151 阅读 · 0 评论 -
搭建NER分类器——方法1(投票模型)
Method1_Majority_Voting1 # 导入数据并初始化数据集见评论区输出2 预定义数据结构输出3 投票模型代码4 数据预处理输出5 模型预测输出1 # 导入数据并初始化数据集见评论区import pandas as pdimport numpy as np# 导入数据初始化data = pd.read_csv('ner_dataset.csv', encoding='latin1' )data = data.fillna(method='ffill')data.tail(原创 2020-07-29 21:54:51 · 711 阅读 · 1 评论 -
命名实体识别介绍
NER_intro1 初始化数据2 查看nltk的版本输出3 导入包输出4 进行分词输出1输出21 初始化数据paragraph1 = """Completely destroy information stored without your \knowledge or approval: Internet history, Web pages and pictures from sites \visited on the Internet, unwanted cookies, chatroom c原创 2020-07-29 05:31:50 · 288 阅读 · 0 评论 -
解决一个实际问题——scipy.optimize.linprog
1 问题描述Maximum Flow Problem(最大流问题):给定输油管道的八个节点,以及各个节点之间的最大流量,求该系统的最大流量。如下图所示。2 去官网搜线性规划包3 问题分析4 源代码from scipy.optimize import linprogc = [-1 for i in range(3)] + [0 for i in range(9)]A = [[1,0,0,-1,-1,0,0,0,0,0,0,0], [0,1,0,0,0,-1,-1,-1,原创 2020-07-23 23:09:36 · 642 阅读 · 0 评论 -
情绪识别实战
情绪识别实战1 导入包2 导入并查看数据输出3 分离验证集和测试集4 特征工程其他特征可以提取吗?5 训练模型输出6 查看混淆矩阵输出1 导入包import numpy as npimport pandas as pd2 导入并查看数据data = pd.read_csv('ISEAR.csv', header=None)data.head()# 标签 内容输出3 分离验证集和测试集# 最经典的过程from sklearn.model_selection原创 2020-07-19 08:00:01 · 676 阅读 · 1 评论 -
数据结构之leetcode 347题
37题目描述给出一个列表,输出k个频率最高的元素。源代码# 347题# 我的解答def topKFrequent(nums, k): m = {} num = [] for i in nums: if i not in m: m[i] = 1 else: m[i] += 1 for key, v in m.items(): p = (v, key)原创 2020-07-17 12:37:40 · 299 阅读 · 1 评论 -
数据结构之leetcode 22题
1 22题描述给定n个小括号,输出所有可能的正确括号序列。2 源代码# 22题 括号生成# 注意观察这道题有个特性:前n个括号中,左括号数量不会少于右括号数量!!!res = [] def fun(left, right, n, s): if left == 0 and right == 0: res.append(s) return if left > 0: fun(left - 1, right, n原创 2020-07-17 11:20:36 · 181 阅读 · 0 评论 -
数据结构之二叉树的遍历方法
1 二叉树的广度优先搜索(队列)# Definition for a binary tree node.# 二叉树的广度优先搜索(队列)class TreeNode: # leecode 内部规定的数据结构! 不需要自己构建树! def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right原创 2020-07-17 08:40:15 · 107 阅读 · 0 评论 -
数据结构之leetcode 98题
1 98题描述给定二叉搜索树的基本结构。判定二叉搜索树是否有效。# 98 题# Definition for a binary tree node.# 时间O(n),空间O(n)# 改进:还可以对空间优化:递归的时候就判断!class TreeNode: # leecode 内部规定的数据结构! 不需要自己构建树! def __init__(self, val=0, left=None, right=None): self.val = val sel原创 2020-07-17 08:09:37 · 182 阅读 · 0 评论 -
数据结构之leetcode 15题
1 15题描述给定一个数组,从中选出三个数abc,使得:a+b+c = 0,且选出的方案不得重复!2 我的解答,三种都超时~# 15题# 注意:一个元素在一个方案中不可以重复出现!# 暴力解法:严重超时!O(n^3)class Solution: def threeSum(nums): l = len(nums) ans = [] map_ans = [] for a in range(l): f原创 2020-07-17 07:09:05 · 214 阅读 · 0 评论 -
数据结构之leetcode 242题
1 题目描述:给定两个字符串,判断它们的字符组成是否全等。# 时间O(NlogN),空间O(1)class Solution(object): def isAnagram(s, t): a, b = {}, {} if len(s) != len(t): return False for i in s: if i not in a: a[i] = 1原创 2020-07-17 07:04:20 · 126 阅读 · 0 评论 -
scrapy爬虫实战——抓取NBA吧的内容
scrapy爬虫步骤1 进入虚拟环境2 测试爬取页面3 进入开发者模式4 剥离页面中的数据5 在pycharm中码代码scrapy框架的目录(之前创建虚拟环境自动搭建)nba.py源码详解步骤1 进入虚拟环境进入之前以及搭建好的虚拟环境:2 测试爬取页面在anaconda的shell中输入下面格式(scrapy shell 要爬取的网站):3 进入开发者模式进入贴吧页面的开发者模式(在浏览器上按F12),分析标签:4 剥离页面中的数据再次进入shell查看需要的数据,同时观察数据特征:原创 2020-07-11 21:16:28 · 370 阅读 · 1 评论 -
win10下搭建anaconda3虚拟环境
win10搭建anaconda3虚拟环境步骤:1 配置环境变量2 创建新的虚拟环境3 解决[WinError 127]问题4 查看虚拟环境列表conda info --envs5 进入虚拟环境activate your_env_name步骤:1 配置环境变量2 创建新的虚拟环境conda create -n your_env_name python=X.X自行在conda命令行输入:3 解决[WinError 127]问题使用Anaconda/DLLS中libssl-1_1-x64.d原创 2020-07-11 08:08:25 · 963 阅读 · 0 评论 -
matplotlib可视化
简单图体验# pip install matplot libimport matplotlib.pyplot as pltimport numpy as npplt.plot(np.arange(10))构建子图# 先构建一张大图fig = plt.figure()# 再构建四张小图放在特定的位置ax1 = fig.add_subplot(2,2,1)ax2 = fig.add_subplot(2,2,2)ax3 = fig.add_subplot(2,2,3)ax4 = fi原创 2020-07-11 07:02:38 · 105 阅读 · 0 评论 -
Pandas入门
Pandas为什么要学习PandasSeries类型说明自定义索引我们也可以把Series当作字典来使用确实数据的处理In[7]:和上面是等价的!!!In[8]:## DataFrame类型#### DataFrame是一个表格型的数据结构,它含有一组有序的列。每列可以是不同值的类型、数值、字符串、布尔值都可以#### DataFrame本身有行索引,也有列索引#### DataFrame也可以理解成是由 Series组成的一个字典In[11]:构建一个DataFrameIn[13]:In[17]:Data原创 2020-07-11 06:28:46 · 204 阅读 · 0 评论 -
词性标注实战——Viterbi算法
Viterbi算法第一步 初始化第二步 构建 pi,A,B到此为止计算完了模型所有的参数:pi, A, B避免矩阵中的一些0,使得不能log第三步 维特比算法最后 测试最后的最后 词性对照表英文词性对照表中文词性对照表第一步 初始化tag2id, id2tag = {}, {} # maps: tag to id .tag2id: {'VB': 0, 'NNP: 1......'}, # id2tag:{0:'VB', 1: 'NNP', ......}原创 2020-07-10 05:29:38 · 647 阅读 · 0 评论 -
numpy数组
numpyshape 和 dtype嵌套序列是由一组等长列表组成的列表np对数据类型的一个判断numpy进行指定长度数组的创建矢量化数组通常不用在编写循环的情况下就可以进行批量运算### 维度不等的In[42]:### numpy数组的索引和切片操作In[44]:In[47]:一个二维数组的访问方式In[52]:## 花式索引(Fancy indexing)它是一个NumPy中的索引,指的是利用整数数组进行索引In[56]:以一个特定的顺序来选取行中的子集,我们传入一个用于指定顺序的整数列表,或数组这里也可原创 2020-07-09 07:48:09 · 1187 阅读 · 0 评论 -
Python编程高阶函数的应用(一)
Python编程高阶函数lambda表达式三元运算符map函数的应用filter 过滤器reduce 函数列表推导式根据已有的列表推导出新的列表集合推导式字典推导式闭包:一个返回值是函数的函数装饰器/语法糖/注解如果函数有参数怎么解决——有参数的装饰器关键字参数问题作业:开发一个语法糖,实现参数的类型准确性.关键字参数问题,小作业的解答#!/usr/bin/env python# coding: utf-8lambda表达式# 又被称之为匿名函数# # 格式 lambda 参数列表: 函数体原创 2020-07-08 04:48:49 · 332 阅读 · 0 评论 -
Python编程高阶函数的应用(二)——利用语法糖(装饰器)判断参数类型
题目作业:开发一个语法糖,实现参数的类型准确性.。提示:在python中,大家都知道python的数据类型是弱类型,比如说函数只允许传字符串我的做法# 关键字参数问题,小作业的解答def runtime(func): def get_time(*args, **kwargs): #依次解决多参数,关键字参数问题 for i in args: if not isinstance(i, str): print('原创 2020-07-08 03:58:55 · 246 阅读 · 0 评论 -
NLP训练营之问答系统——替换用户输入句子中错误单词
替换用户输入句子中错误单词构建词典库需要生成 所有候选集合读取路透社语料库构建语言模型:bigram用户打错的概率统计 - channel probalility主函数构建词典库# Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格)vocab = set([line.rstrip() for line in open('vocab.txt')]) print(vocab)需要生成 所有候选集合def generate_candidates(word):原创 2020-07-06 01:06:49 · 249 阅读 · 0 评论 -
DP之 0-1 背包问题
0-1 背包问题import numpy as npdef knapsack(w, v, C): # 重量 和 价值 一一对应的数组, 背包的容量 # 定义存储空间 并 初始化 mem = np.zeros((len(w) + 1, C + 1)) for i in range(1, len(w) + 1): for j in range(1, C + 1): # 拿当前第 i 个物品(i 是从原创 2020-07-05 11:16:22 · 123 阅读 · 0 评论 -
DP之零钱兑换问题
零钱兑换问题```pythondef coinChange(coins, amount): # 给你的零钱面额(不限数量) 要凑的总面额 # 异常判断特殊情况(完全不可能有解的情况!) if amount == 0: return 0 if len(coins) == 0: return -1 if len(coins) ==1 and coins[0] > amount: return -1原创 2020-07-04 23:34:31 · 232 阅读 · 0 评论 -
DP之最长上升子序列
最长上升子序列def lengthOfLIS(self, nums): # 处理特殊情况 if len(nums) <= 1: return len(nums) # 保存 该元素之前 的 最大上升子序列的长度 mem = [1 for _ in range(len(nums))] for j in range(1, len(nums)): # 前面的元素都要遍历一遍原创 2020-07-04 18:56:29 · 90 阅读 · 0 评论 -
DP之最大连续子序列
最大连续子序列def maxSubArray(self, nums): # 判断特殊情况 if len(nums) == 1: return nums[0] # 先初始化 max_ret = nums[0] cur_max = last_max = nums[0] for i in range(1, len(nums)): # 之前的最大连续子序列 和 当前的值 进行比较!! if原创 2020-07-04 18:32:35 · 114 阅读 · 0 评论 -
DP之编辑距离
动态规划 编辑距离问题(Edit Distance Problem)网址链接:https://algorithms.tutorialhorizon.com/dynamic-programming-edit-distance-problem/目标:给定两个字符串s1, s2,写出一个算法来找出从s1转化到s2所需要的最小操作步骤数(编辑距离)。所允许的操作:Insert(插入)——插入一个新的字符delete(删除)——删除一个字符replace(替换) ——替换为另一个字符例子:原创 2020-07-01 02:17:59 · 167 阅读 · 0 评论 -
自然语言处理——作业一
请写一下你的知乎个人链接链接:https://www.zhihu.com/people/Love-1314请列出至少5位你感兴趣的国外顶尖NLP专家以及他们目前所在单位和主要研究领域:Kevin Knight: 之前USC,现在滴滴LA, 主要研究 Machine TranslationRay Mooney:德克萨斯大学奥斯汀分校,机器学习、认知科学、信息抽取和逻辑Dan Klein:加州大学伯克利分校,NLP和机器学习交叉研究Chris Dyer:卡内基梅隆原创 2020-06-29 18:07:11 · 995 阅读 · 0 评论 -
10.2 命题逻辑
#!/usr/bin/env python# coding: utf-8 ·命题逻辑:表示对应特定语句连接词的语言结构部分 ·布尔运算符:连接词的对应形式 ·命题符号:命题逻辑的基本表达式import nltknltk.boolean_ops()·公式:我们可以建立 命题逻辑的规范公式的无限集合。# In[4]:# nltk.LogicParser换成了nltk.se...原创 2020-04-21 04:51:10 · 276 阅读 · 1 评论 -
8.5 依存关系 和 依存文法 & 8.6 文法开发
8.5 依存关系 和 依存文法 & 8.6 文法开发8.5 依存关系 和 依存文法1、配价 与 词汇2、扩大规模8.6 文法开发1、树库 和 文法2、有害的歧义3、加权文法#!/usr/bin/env python# coding: utf-88.5 依存关系 和 依存文法·依存文法:一个中心词(通常是动词)与其从属之间的二元非对称关系。(集中关注的是词与其他词之间的关系)·如...原创 2020-04-11 22:52:58 · 439 阅读 · 0 评论 -
8.3 上下文无关文法
#!/usr/bin/env python# coding: utf-81、一种简单的文法上下文无关文法CFGget_ipython().run_line_magic('pinfo2', 'nltk.CFG.fromstring')# In[3]:import nltkgrammar1 = nltk.CFG.fromstring(''' S -> NP VP...原创 2020-04-04 23:14:57 · 243 阅读 · 0 评论 -
8.1 一些语法困境
一些语法困境1、一种简单的文法2、编写自己的文法3、句法结构中的递归#!/usr/bin/env python# coding: utf-81、一种简单的文法·上下文无关文法CFG# In[7]:get_ipython().run_line_magic('pinfo2', 'nltk.CFG.fromstring')# In[3]:import nltkgramm...原创 2020-04-04 23:12:09 · 136 阅读 · 0 评论 -
8.2 文法的用途
并列结构词序列的替代名词短语NP、动词短语VP、介词短语PP、名词性词Nom组成成分,直接组成成分重复这一过程,最终得到一个符合语法规则且只有两个词的句子。...原创 2020-04-04 23:08:58 · 331 阅读 · 0 评论 -
7.4 语言结构中的递归 & 7. 5 命名实体识别 & 7.6 关系提取
7.4 语言结构中的递归 & 7. 5 命名实体识别 & 7.6 关系提取1、用级联分块器构建嵌套结构2、树状图3、树遍历#!/usr/bin/env python# coding: utf-8# # 7.4 语言结构中的递归# In[ ]:1、用级联分块器构建嵌套结构# In[2]:import nltk# In[3]:grammar = ...原创 2020-03-30 02:00:02 · 164 阅读 · 1 评论 -
5.6 基于转换的标注 & 5.7 如何确定一个词的分类
5.6 基于转换的标注1、从大笔画开始,然后修复细节,一点点细致地进行改变。import nltknltk.tag.brill.demo() # 没有这玩意儿?。。。。。。。print(open('errros.out').read())5.7 如何确定一个词的分类1、确定一个词的类别:语言学家使用形态学、句法和语义线索确定2、新词:开放类 和 封闭类...原创 2020-03-10 09:24:35 · 150 阅读 · 0 评论 -
5.5 N-gram 标注
1、一元标注器from nltk.corpus import brownimport nltkbrown_tagged_sents = brown.tagged_sents(categories = 'news') # 提取已经标注的句子原创 2020-03-09 21:06:07 · 367 阅读 · 0 评论 -
5.4 自动标注
5.4 自动标注1、默认标注器2、正则表达式标注器3、查询标注器最重要的一个项目!from nltk.corpus import brownbrown_tagged_sents = brown.tagged_sents(categories = 'news')brown_sents = brown.sents(categories='news')1、默认标注器import nltkt...原创 2020-03-06 01:58:02 · 334 阅读 · 0 评论