小编Sté*_*e C的帖子

如何使用语义自动标记单词集?

上下文是:我已经有了一些单词(实际上是短语),这些单词是由应用于互联网搜索查询的kmeans产生的,并且在搜索引擎的结果中使用常见的URL作为距离(如果我简化很多,则会同时显示网址而不是单词) ).

我想使用语义自动标记聚类,换句话说,我想提取围绕一起考虑的一组短语的主要概念.

例如 - 抱歉我的例子 - 如果我有以下一堆问题:['我丈夫袭击了我','他被警察逮捕','审判仍在继续','我的丈夫可以因为骚扰我而入狱?','自由律师']我的研究涉及家庭暴力,但显然这个集群专注于问题的法律方面,所以标签可能是"合法的".

我是NPL的新手,但我必须确切地说我不想使用POS标记提取单词(或者至少这不是预期的最终结果,但可能是必要的初步步骤).

我读到Wordnet的感觉消除歧义,我认为这可能是一个很好的轨道,但我不想计算两个查询之间的相似性(因为集群是输入),也不需要获得一个选定单词的定义,这要归功于提供的上下文通过一大堆词(在这种情况下选择哪个词?).我想使用整个单词来提供上下文(可能使用synset或使用wordnet的xml结构进行分类),然后用一个或几个单词汇总上下文.

有任何想法吗 ?我可以使用R或python,我读了一些关于nltk但我找不到在我的上下文中使用它的方法.

python nlp r nltk wordnet

9
推荐指数
1
解决办法
2370
查看次数

如何手动或离线从github安装R包

我尝试从github下载tsdyn包(它还没有更新)但我的代理阻止我连接到github.

library(devtools)
install_github("MatthieuStigler/tsDyn", ref="Dev94", subdir="tsDyn") 

Downloading github repo MatthieuStigler/tsDyn@Dev94
Erreur dans function (type, msg, asError = TRUE)  : 
Failed to connect to api.github.com port 443: Connection refused
Run Code Online (Sandbox Code Playgroud)

然后我下载了.zip并尝试从.zip安装包并出现此错误:

Erreur dans read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package",     "Type")) : 
impossible d'ouvrir la connexion
De plus : Message d'avis :
In read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) :
impossible d'ouvrir le fichier compressé 'tsDyn-master/DESCRIPTION', cause probable : 'No such file or directory' 
Run Code Online (Sandbox Code Playgroud)

我不明白,因为我可以在存储库中找到DESCRIPTION文件.我认为它正试图连接到互联网,这是我的专业联系所不允许的.我发现有些Linux用户成功下载了另一个端口而不是443(我认为端口8000必须允许但不确定)但是我有Windows 7.我有管理员凭据,当我尝试时它也不起作用使用R作为管理员.我真的对代理配置一无所知,所以如果你有任何想法,请尝试更具体地说明我应该采取的行动.

非常感谢提前!

Edit1:我尝试了你的提议,并删除了文件存储库中不必要的级别,我做了一个

Rscript -e "install.packages ('C:/Users/stephanie/Downloads/tsDyn.zip',repos=NULL) " 
Run Code Online (Sandbox Code Playgroud)

我从终端"将软件包安装到'C:/Users/stephanie/Documents/R/win-library/3.1'(因为'lib'未指定).它似乎工作,但当我使用命令库(tsDyn)时)在RI得到了"Erreur dans library(tsDyn),'tsDyn'n'est pas un nom …

r github download package

6
推荐指数
1
解决办法
2666
查看次数

如何使用Graph.fromEdgeTuples从Array [(Any,Any)]创建图形

我很新兴,但我想从Hive表中获得的关系创建一个图表.我找到了一个函数,它应该允许这个而不定义顶点,但我无法让它工作.

我知道这不是一个可重现的例子,但这是我的代码:

import org.apache.spark.SparkContext
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD
val sqlContext= new org.apache.spark.sql.hive.HiveContext(sc)
val data = sqlContext.sql("select year, trade_flow, reporter_iso, partner_iso, sum(trade_value_us) from comtrade.annual_hs where length(commodity_code)='2' and not partner_iso='WLD' group by year, trade_flow, reporter_iso, partner_iso").collect()
val data_2010 = data.filter(line => line(0)==2010)
val couples = data_2010.map(line=>(line(2),line(3)) //country to country 

val graph = Graph.fromEdgeTuples(couples, 1)
Run Code Online (Sandbox Code Playgroud)

最后一行生成以下错误:

val graph = Graph.fromEdgeTuples(sc.parallelize(couples), 1)
<console>:31: error: type mismatch;
found   : Array[(Any, Any)]
required: Seq[(org.apache.spark.graphx.VertexId,org.apache.spark.graphx.VertexId)]
Error occurred in an application involving default arguments.
val graph = Graph.fromEdgeTuples(sc.parallelize(couples), …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql spark-graphx

6
推荐指数
1
解决办法
1395
查看次数

如何从graphx中的元组构建图形并在之后标记节点?

这里可以找到一些上下文,我的想法是我已经从Hive表上的请求中收集的元组创建了一个图形.这些对应于国家之间的贸易关系.以这种方式构建图形后,顶点未标记.我想学习学位分布并获得最相关国家的名字.我尝试了两个选项:

  • 第一:我尝试用顶点的字符串名称映射顶点的索引,函数idMapbis在函数内部,该函数收集并打印十个顶部连接度.
  • 第二:我试图将标签添加到图形本身的顶点.

在这两种情况下,我都会收到以下错误:任务不可序列化

全球代码:

import org.apache.spark.SparkContext
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD

val sqlContext= new org.apache.spark.sql.hive.HiveContext(sc)
val data = sqlContext.sql("select year, trade_flow, reporter_iso, partner_iso, sum(trade_value_us) from comtrade.annual_hs where length(commodity_code)='2' and not partner_iso='WLD' group by year, trade_flow, reporter_iso, partner_iso").collect()
val data_2010 = data.filter(line => line(0)==2010)
val couples = data_2010.map(line=>(line(2),line(3))) //pays->pays 
Run Code Online (Sandbox Code Playgroud)

情侣看起来像这样:数组[(任何,任何)] =数组((MWI,MOZ),(WSM,AUS),(MDA,CRI),(KNA,HTI),(PER,ERI),(SWE,CUB) ),...

val idMap = sc.broadcast(couples 
.flatMap{case (x: String, y: String) => Seq(x, y)}
.distinct 
.zipWithIndex  
.map{case (k, v) => (k, v.toLong)}  
.toMap) 

val edges: RDD[(VertexId, VertexId)] …
Run Code Online (Sandbox Code Playgroud)

serialization scala graph apache-spark

6
推荐指数
1
解决办法
1159
查看次数

如果手动加载 wordnet,如何在同义词集 (nltk) 中使用语言选项?

出于特定目的,我必须使用 Wordnet 1.6 而不是 nltk 包中实现的当前版本。然后我在这里下载了旧版本并尝试使用 french 选项运行一个简单的代码提取。

from collections import defaultdict
import nltk
#nltk.download() 
import os
import sys
from nltk.corpus import WordNetCorpusReader

cwd = os.getcwd()
nltk.data.path.append(cwd)
wordnet16_dir="wordnet-1.6/"
wn16_path = "{0}/dict".format(wordnet16_dir)
wn = WordNetCorpusReader(os.path.abspath("{0}/{1}".format(cwd, wn16_path)), nltk.data.find(wn16_path))

senses=wn.synsets('gouvernement',lang=u'fre')
Run Code Online (Sandbox Code Playgroud)

看来我手动下载的wordnet无法链接到处理外语的nltk模块的文件,我得到的错误如下:

Traceback (most recent call last):
File "C:/Users/Stephanie/Test/temp.py", line 16, in <module>
senses=wn.synsets('gouvernement',lang=u'fre')
File "C:\Python27\lib\site-packages\nltk\corpus\reader\wordnet.py", line 1419, in synsets
self._load_lang_data(lang)
File "C:\Python27\lib\site-packages\nltk\corpus\reader\wordnet.py", line 1064, in _load_lang_data
if lang not in self.langs():
File "C:\Python27\lib\site-packages\nltk\corpus\reader\wordnet.py", line 1088, in langs
fileids = …
Run Code Online (Sandbox Code Playgroud)

python nlp path nltk wordnet

5
推荐指数
1
解决办法
4418
查看次数

在火车上使用您自己的模型(插入符号)?

我试图使用Caret附带的包装中未包含的火车,但收到一个我无法弄清楚的错误,知道吗?我使用以下链接开始

bmsMeth<-list(type="Regression",library="BMS",loop=NULL,prob=NULL) 
prm<-data.frame(parameter="mprior.size",class="numeric",label="mprior.size")
bmsMeth$parameters<-prm
bmsGrid<-function(x,y,len=NULL){
out<-expand.grid(mprior.size=seq(2,3,by=len))
out
}
bmsMeth$grid<-bmsGrid
bmsFit<-function(x,y,param, lev=NULL) {bms(cbind(y,x),burn=5000,iter=100000,nmodel=1000,mcmc="bd",g="UIP",mprior.size=param$mprior.size)}
bmsMeth$fit<-bmsFit
bmsPred<-function(modelFit,newdata,preProcess=NULL,submodels=NULL){predict(modelFit,newdata)}
bmsMeth$predict<-bmsPred

library(caret)
data.train<-data.frame(runif(100),runif(100),runif(100),runif(100),runif(100))#synthetic data for testing
bms(cbind(data.train[,1],data.train[,-1]),burn=5000,iter=100000,nmodel=1000,mcmc="bd",g="UIP",mprior.size=2)#function out of caret is working

preProcess=c('center','scale')
myTimeControl <- trainControl(method = "timeslice",initialWindow = 0.99*nrow(data.train), horizon = 1, fixedWindow = FALSE)
tune <- train(data.train[,-1],data.train[,1],preProcess=preProcess,method = bmsMeth,tuneLength=2,metric= "RMSE",trControl =myTimeControl,type="Regression")
Run Code Online (Sandbox Code Playgroud)

错误我得到:

train.default(data.train [,-1],data.train [,1],preProcess = preProcess,中的错误:正在停止:警告消息:1:在eval(expr,envir,enclos)中:模型拟合失败对于Training1:mprior.size = 2方法中的错误$ fit(x = x,y = y,wts = wts,param = tuneValue,lev = obsLevels,:未使用的参数(wts = wts,last = last,classProbs = classProbs,类型=“回归”)

2:在nominalTrainWorkflow(x = x,y = y,wts =权重,info …

r r-caret

5
推荐指数
1
解决办法
879
查看次数

如何在R中转换角色中的任何对象?

我使用wordnet库,我想获得令牌的wordnet索引以供将来使用.

library(wordnet)
filter <- getTermFilter("ExactMatchFilter", "proud", TRUE)
terms <- getIndexTerms("ADJECTIVE", 1, filter)
terms


[1] "Java-Object{Lemma: proud  POS: adj  Tag-Sense-Count: 2\nList of Synsets (2)\n  #1: 1817423\n  #2: 1231908\nList of Pointers (4)\n  #1: ! (Antonym)\n  #2: & (Similar to)\n  #3: ^ (Also see)\n  #4: = (Attribute)}"
Run Code Online (Sandbox Code Playgroud)

terms是一个带有一些方法的Java-Object:

names(terms[[1]])
[1] "getLemma()"         "getSynsets()"       "getPointers()"      "getPartOfSpeech()"  "getSynsetCount()"   "getTagSenseCount()" "getPointerCount()" 
[8] "toString()"         "compareTo("         "compareTo("         "wait("              "wait("              "wait()"             "equals("           
[15] "hashCode()"         "getClass()"         "notify()"           "notifyAll()"    
Run Code Online (Sandbox Code Playgroud)

但似乎并非所有工作都有效

getLemma(terms[[1]])
[1] "proud"

toString(terms[[1]])
Erreur dans as.character.default(<S4 object of class …
Run Code Online (Sandbox Code Playgroud)

java types r

0
推荐指数
1
解决办法
497
查看次数