当前位置: 首页 > news >正文

怎么知道网站的ftp千图主站的功能介绍

怎么知道网站的ftp,千图主站的功能介绍,怎么做支付网站,宁波随身云网络科技有限公司前言#xff1a;在信息爆炸的时代#xff0c;我们每天都沉浸在海量的数据和信息中。随着互联网技术的飞速发展#xff0c;如何从这些信息中准确、高效地提取出有用的知识#xff0c;成为了当下研究的热点。其中#xff0c;上下位关系#xff08;也称为层级关系或种属关系… 前言在信息爆炸的时代我们每天都沉浸在海量的数据和信息中。随着互联网技术的飞速发展如何从这些信息中准确、高效地提取出有用的知识成为了当下研究的热点。其中上下位关系也称为层级关系或种属关系是知识图谱、自然语言处理和语义网等领域中的一个核心概念。它描述的是实体之间的层级关系比如“狗是动物的一种”“橡树是树的一种”等。这种关系不仅有助于我们更好地理解和组织信息还能为智能问答、推荐系统、语义搜索等应用提供强大的支持。 本文所涉及所有资源均在传知代码平台可获取 目录 概述 演示效果 核心代码 写在最后 概述 在自然语言的处理过程中上下位关系Is-a Relationship是用来描述概念也被称为术语间的语义涵盖关系。在这里上位词Hypernym代表了下位词Hyponym的抽象和泛化而下位词则是对上位词的具体化和特定性。以“水果”为例它与“苹果”、“香蕉”、“橙子”等词是同义的而“汽车”、“电动车”、“自行车”等词则与“交通工具”相对应。在处理自然语言的任务时深入理解概念间的层级关系对于执行如词义消歧、信息检索、自动问答和语义推理等任务都是至关重要的 本文复现 论文提出的文本中上位词检测方法具体如下 文本中上位词检测方法即从文本中提取出互为上下位关系的概念。现有的无监督上位词检测方法大致可以分为两类——基于模式的方法和基于分布模型的方法 1基于模式的方法 其主要思想是利用特定的词汇-句法模式来检测文本中的上下位关系。例如我们可以通过检测文本中是否存在句式“【词汇1】是一种【词汇2】”或“【词汇1】例如【词汇2】”来判断【词汇1】和【词汇2】间是否存在上下位关系。这些模式可以是预定义的也可以是通过机器学习得到的。然而基于模式的方法存在一个众所周知的问题——极端稀疏性即词汇必须在有限的模式中共同出现其上下位关系才能被检测到。 2基于分布模型的方法 基于大型文本语料库词汇可以被学习并表示成向量的形式。利用特定的相似度度量我们可以区分词汇间的不同关系。 在该论文中作者研究了基于模式的方法和基于分布模型的方法在几个上下位关系检测任务中的表现并发现简单的基于模式的方法在常见的数据集上始终优于基于分布模型的方法。作者认为这种差异产生的原因是基于模式的方法提供了尚不能被分布模型准确捕捉到的重要上下文约束。 作者使用如下Hearst模式来捕捉文本中的上下位关系通过对大型语料库使用模式捕捉候选上下位词对并统计频次可以计算任意两个词汇之间存在上下位关系的概率 模板例子XX which is a (example|class|kind…) of YYCoffee, which is a beverage, is enjoyed worldwide.XX (and|or) (any|some) other YYCoffee and some other hot beverages are popular in the morning.XX which is called YYCoffee, which is called “java”.XX is JJS (most)? YYCoffee is the most consumed beverage worldwide.XX is a special case of YYEspresso is a special case of coffee.XX is an YY thatA latte is a coffee that includes steamed milk.XX is a !(member|part|given) YYA robot is a machine.!(features|properties) YY such as X1X1​, X2X2​, …Beverages such as coffee, tea, and soda have various properties such as caffeine content and flavor.(Unlike|like) (most|all|any|other) YY, XXUnlike most beverages, coffee is often consumed hot.YY including X1X1​, X2X2​, …Beverages including coffee, tea, and hot chocolate are served at the café. 设 p(x,y)p(x,y)是词汇 xx 和 yy 分别作为下位词和上位词出现在预定义模式集合 PP 中的频率p−(x)p−(x)是 xx 作为任意词汇的下位词出现在预定义模式中的频率p(y)p(y)是 yy 作为任意词汇的上位词出现在预定义模式中的频率。作者定义正逐点互信息Positive Point-wise Mutual Information作为词汇间上下位关系得分的依据 由于模式的稀疏性部分存在上下位关系的词对并不会出现在特定的模式中。为了解决这一问题作者利用PPMI得分矩阵的稀疏表示来预测任意未知词对的上下位关系得分。PPMI得分矩阵定义如下 其中 m|\{x|(x,y)\in P\or(y,x)\in P\}|对矩阵 MM 做奇异值分解可得 MUΣVTMUΣVT然后我们可以通过下式计算出上下位关系 spmi 得分其中 uxux​ 和 vyvy​ 分别是矩阵 UU 和 VV 的第 xx 行和第 yy 行ΣrΣr​是对 ΣΣ 的 rr 截断即除了最大的 rr 个元素其余全部置零 演示效果 拿到代码解压附件压缩包并进入工作目录。如果是Linux系统请使用如下命令 unzip Revisit-Hearst-Pattern.zip cd Revisit-Hearst-Pattern 代码的运行环境可通过如下命令进行配置 pip install -r requirements.txt python -m spacy download en_core_web_sm# 如果希望在本地运行程序请运行如下命令 python main.py# 如果希望在线部署请运行如下命令 python main-flask.py 如果希望添加新的模板请修改文件data/patterns.json _HYPONYM_表示下位词占位符     _HYPERNYM_表示上位词占位符 其余格式请遵照 python.re 模块的正则表达式要求。 如果希望使用自己的文件路径或改动其他实验设置请在文件config.json中修改对应参数。以下是参数含义对照表 参数名含义corpus_path文本语料库文件路径默认为“data/corpus.txt”。patterns_path预定义模式库的路径。默认为“data/patterns.json”。pairs_path利用模式筛选出的上下位关系词对路径默认为“data/pairs.json”。spmi_path上下位关系词对及其spmi得分路径默认为“data/spmi.json”。clip用于对 ΣΣ 进行截断的参数 rr ,默认为10。thresholdspmi得分小于该值的词对将被舍去。默认为1。max_bytes输入文件大小上限用于在线演示默认为200kB。 运行脚本main.py程序会自动检测语料库中存在的上下位关系。运行结果如下所示 核心代码 下面这段代码实现了一个术语上下位关系提取的流程包括文本清理、句子划分、术语抽取、共现关系抽取、SPMI 计算等步骤。 代码中的 clear_text 函数用于清理文本例如删除交叉引用标识。split_sentences 函数用于将文本划分为句子。extract_noun_phrases 函数用于从句子中抽取名词性短语作为候选术语。term_lemma 函数用于将术语中的名词还原为单数。find_co_occurrence 函数用于找出共现于模板的术语对。count_unique_tuple 函数用于统计列表中独特元组出现次数。find_rth_largest 函数用于找到数组中第 r 大的元素。find_pairs 函数用于读取文件并找出共现于模板的上下位关系术语对。spmi_calculate 函数用于基于对共现频率的统计计算任意两个术语间的 spmi 得分。 在主函数中代码首先读取配置文件和模板然后读取语料库中共现于模板的术语对并统计上下位关系的出现频次。接下来代码计算任意两个术语间的 spmi 得分并将结果输出到文件中 import spacy import json from tqdm import tqdm import re from collections import Counter import numpy as np import mathnlp spacy.load(en_core_web_sm)def clear_text(text):对文本进行清理# 这里可以添加自己的清理步骤# 删去交叉引用标识例如[1]pattern r\[\d\]result re.sub(pattern, , text)return resultdef split_sentences(text):将文本划分为句子doc nlp(text)sentences [sent.text.strip() for sent in doc.sents]return sentencesdef extract_noun_phrases(text):从文本中抽取出术语doc nlp(text)terms []# 遍历句子中的名词性短语例如a type of robotfor chunk in doc.noun_chunks:term_parts []for token in list(chunk)[-1::]:# 以非名词且非形容词或是代词的词语为界保留右半部分(例如robot)if token.pos_ in [NOUN, ADJ] and token.dep_ ! PRON:term_parts.append(token.text)else:breakif term_parts ! []:term .join(term_parts)terms.append(term)return termsdef term_lemma(term):将术语中的名词还原为单数lemma []doc nlp(term)for token in doc:if token.pos_ NOUN:lemma.append(token.lemma_)else:lemma.append(token.text)return .join(lemma)def find_co_occurrence(sentence, terms, patterns):找出共现于模板的术语对pairs []# 两两之间匹配for hyponym in terms:for hypernym in terms:if hyponym hypernym:continuefor pattern in patterns:# 将模板中的占位符替换成候选上下位词pattern pattern.replace(__HYPONYM__, re.escape(hyponym))pattern pattern.replace(__HYPERNYM__, re.escape(hypernym))# 在句子中匹配if re.search(pattern, sentence) ! None:# 将名词复数还原为单数pairs.append((term_lemma(hyponym), term_lemma(hypernym)))return pairsdef count_unique_tuple(tuple_list):统计列表中独特元组出现次数counter Counter(tuple_list)result [{tuple: unique, count: count} for unique, count in counter.items()]return resultdef find_rth_largest(arr, r):找到第r大的元素rth_largest_index np.argpartition(arr, -r)[-r]return arr[rth_largest_index]def find_pairs(corpus_file, patterns, disable_tqdmFalse):读取文件并找出共现于模板的上下位关系术语对pairs []# 按行读取语料库lines corpus_file.readlines()for line in tqdm(lines, descFinding pairs, ascii 123456789#, disabledisable_tqdm):# 删去首尾部分的空白字符line line.strip()# 忽略空白行if line :continue# 清理文本line clear_text(line)# 按句处理sentences split_sentences(line)for sentence in sentences:# 抽取出句子中的名词性短语并分割成术语candidates_terms extract_noun_phrases(sentence)# 找出共现于模板的术语对pairs pairs find_co_occurrence(sentence, candidates_terms, patterns)return pairsdef spmi_calculate(configs, unique_pairs):基于对共现频率的统计计算任意两个术语间的spmi得分# 计算每个术语分别作为上下位词的出现频次terms list(set([pair[tuple][0] for pair in unique_pairs] [pair[tuple][1] for pair in unique_pairs]))term_count {term: {hyponym_count: 0, hypernym_count: 0} for term in terms}all_count 0for pair in unique_pairs:term_count[pair[tuple][0]][hyponym_count] pair[count]term_count[pair[tuple][1]][hypernym_count] pair[count]all_count pair[count]# 计算PPMI矩阵 ppmi_matrix np.zeros((len(terms), len(terms)), dtypenp.float32)for pair in unique_pairs:hyponym pair[tuple][0]hyponym_id terms.index(hyponym)hypernym pair[tuple][1]hypernym_id terms.index(hypernym)ppmi (pair[count] * all_count) / (term_count[hyponym][hyponym_count] * term_count[hypernym][hypernym_count])ppmi max(0, math.log(ppmi))ppmi_matrix[hyponym_id, hypernym_id] ppmi# 对PPMI进行奇异值分解并截断r configs[clip]U, S, Vt np.linalg.svd(ppmi_matrix)S[S find_rth_largest(S, r)] 0S_r np.diag(S)# 计算任意两个术语间的spmiparis2spmi []for hyponym_id in range(len(terms)):for hypernym_id in range(len(terms)):# 同一个术语间不计算得分if hyponym_id hypernym_id:continuespmi np.dot(np.dot(U[hyponym_id , :], S_r), Vt[:, hypernym_id]).item()# 保留得分大于阈值的术语对if spmi configs[threshold]:hyponym terms[hyponym_id]hypernym terms[hypernym_id]paris2spmi.append({hyponym: hyponym, hypernym: hypernym, spmi: spmi})# 按spmi从大到小排序paris2spmi sorted(paris2spmi, keylambda x: x[spmi], reverseTrue)return paris2spmiif __name__ __main__:# 读取配置文件with open(config.json, r) as config_file:configs json.load(config_file)# 读取模板with open(configs[patterns_path], r) as patterns_file:patterns json.load(patterns_file)# 语料库中共现于模板的术语对with open(configs[corpus_path], r, encodingutf-8) as corpus_file:pairs find_pairs(corpus_file, patterns)# 统计上下位关系的出现频次unique_pairs count_unique_tuple(pairs)with open(configs[pairs_path], w) as pairs_file:json.dump(unique_pairs, pairs_file, indent6, ensure_asciiTrue)# 计算任意两个术语间的spmi得分paris2spmi spmi_calculate(configs, unique_pairs)with open(configs[spmi_path], w) as spmi_file:json.dump(paris2spmi, spmi_file, indent6, ensure_asciiTrue) 写在最后 回顾我们所探讨的上下位关系自动检测方法我们不难发现这一领域的研究正逐步走向成熟。从最初的基于规则的方法到如今的深度学习和神经网络模型我们见证了技术的飞速进步和无限可能。这些方法不仅提高了检测的准确性和效率更拓宽了我们的知识视野让我们能够更加深入地理解世界的复杂性和多样性。 然而正如所有科学探索一样上下位关系自动检测也面临着诸多挑战和机遇。随着数据量的不断增长和模型复杂度的提高我们需要更加高效和准确的算法来处理这些海量的信息。同时我们也需要关注模型的泛化能力和鲁棒性确保它们能够在不同的场景和领域中都能发挥出优秀的性能随着技术的不断发展和应用场景的不断拓展我们有理由相信上下位关系自动检测将会迎来更加广阔的发展前景。它将不仅仅局限于自然语言处理和知识图谱等领域更将深入到智能问答、推荐系统、语义搜索等更多领域为我们的生活带来更加便捷和智能的体验。 详细复现过程的项目源码、数据和预训练好的模型可从该文章下方附件获取。
http://www.zqtcl.cn/news/614740/

相关文章:

  • seo优化网站的注意事项WordPress伪静态公告404
  • 手机网站自动适应沈阳网站建设公司电话
  • 备案号网站下边苏州广告公司招聘
  • 企业网站设计模板js做网站
  • 福州最好的网站建设公司网络策划
  • 威宁做网站西部数码网站管理助手 没有d盘
  • 网站设计基础知识重庆seo博客推广
  • 中小企业商务网站建设wordpress dmeng
  • 关于网站建设总结公司网站购买主机
  • 定制网站与模板网站网页美工设计师工资
  • 丹棱县 网站建设wordpress公司主题破解版
  • 贾汪微网站开发百度推广登录账号首页
  • 网站开发和网站运营的区别嘉兴市秀洲区住房和建设局网站
  • 西安网站开发公司哪家强如何做付费阅读网站
  • ios认证 东莞网站建设天津企业网站建设方案
  • 高网站排名吗wordpress 拼音别名
  • 网站出现的问题杭州旅游网站建设
  • 陕西城乡建设部网站怎么用自己注册的域名做网站
  • 企业邮箱注册价格汕头做网站优化的公司
  • 高校工会网站建设网站静态页面生成
  • 辽宁省营商环境建设局 网站做网站前端后端ui什么意思
  • 合作社网站模板贵州安顺建设主管部门网站
  • 网站不备案能访问吗哪家做企业网站
  • 做网站写的代号好跟不好的区别企信网企业信用信息系统
  • 网站需要服务器吗手机网站解决方案
  • 网站子网页怎么做国外网站 模板
  • 手机评测网站标志设计分析
  • 网页游戏网站建设成都公司网站
  • 网站流量统计分析的误区wordpress二级目录安装
  • 深互动平台网站wordpress后台无法访问