我有一个Java应用程序需要执行偏最小二乘回归.看来PLSR没有Java实现.Weka可能在某些时候有类似的东西,但它不再在API中.另一方面,我发现了一个很好的R实现,它有一个额外的好处.它被我想要复制的人使用,这意味着由于PLSR实现方式的不同,事情出错的可能性较小.
问题是:是否有足够好(且易于使用)的包使Java能够调用R,将一些参数传递给函数并读回结果?我的另一个选择是让Java在一个进程中生成R然后监视它.数据将被读取并写入磁盘.你会推荐哪两个?我错过了明显的第三种选择吗?
3.7中的标准库可以递归地将数据类转换为dict(来自docs的示例):
from dataclasses import dataclass, asdict
from typing import List
@dataclass
class Point:
x: int
y: int
@dataclass
class C:
mylist: List[Point]
p = Point(10, 20)
assert asdict(p) == {'x': 10, 'y': 20}
c = C([Point(0, 0), Point(10, 4)])
tmp = {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}
assert asdict(c) == tmp
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法,在存在嵌套时将字典转回数据类.喜欢的东西,C(**tmp)
只有工作,如果数据类的字段是简单类型,而不是自己的数据类.我熟悉jsonpickle,但它带有一个突出的安全警告.
我想知道如何计算文本分类的逐点互信息.更确切地说,我想按类别对推文进行分类.我有一个推文数据集(有注释),每个类别的词都有一个字典属于该类别.鉴于此信息,如何计算每个推文的每个类别的PMI,以便在这些类别之一中对推文进行分类.
我几年来一直是一个快乐的NetBeans用户,我很习惯键盘快捷键.有没有办法将我的NB首选项,更具体地说是键映射导入Eclipse?我知道相反的可能性.
PS我不得不说我不坚持使用Eclipse,但我发现PyDev插件优于NB的python插件.你能推荐一些像NB一样好的Python IDE吗?
大家好!我正在使用Stanford Core NLP软件包,我的目标是在实时推文上进行情绪分析.
使用情绪分析工具返回对文本"态度"的非常差的分析.许多正面被标记为中性,许多负面评价为正面.我已经在一个文本文件中获得了超过一百万条推文,但我不知道如何实际训练该工具并创建我自己的模型.
"可以使用PTB格式数据集使用以下命令重新训练模型:"
java -mx8g edu.stanford.nlp.sentiment.SentimentTraining -numHid 25 -trainPath train.txt -devPath dev.txt -train -model model.ser.gz
Run Code Online (Sandbox Code Playgroud)
来自dev.txt的样本(前4位表示5 ... 4/5正极性)
(4 (4 (2 A) (4 (3 (3 warm) (2 ,)) (3 funny))) (3 (2 ,) (3 (4 (4 engaging) (2 film)) (2 .))))
Run Code Online (Sandbox Code Playgroud)
来自test.txt的示例
(3 (3 (2 If) (3 (2 you) (3 (2 sometimes) (2 (2 like) (3 (2 to) (3 (3 (2 go) (2 (2 to) (2 (2 the) (2 movies)))) (3 (2 to) (3 (2 …
Run Code Online (Sandbox Code Playgroud) 我有一个类似大型dict
的对象,需要在许多工作进程之间共享.每个工作者读取对象中信息的随机子集,并使用它进行一些计算.我想避免复制大对象,因为我的机器很快耗尽了内存.
我正在玩这个SO问题的代码,我修改了一下使用固定大小的进程池,这更适合我的用例.然而,这似乎打破了它.
from multiprocessing import Process, Pool
from multiprocessing.managers import BaseManager
class numeri(object):
def __init__(self):
self.nl = []
def getLen(self):
return len(self.nl)
def stampa(self):
print self.nl
def appendi(self, x):
self.nl.append(x)
def svuota(self):
for i in range(len(self.nl)):
del self.nl[0]
class numManager(BaseManager):
pass
def produce(listaNumeri):
print 'producing', id(listaNumeri)
return id(listaNumeri)
def main():
numManager.register('numeri', numeri, exposed=['getLen', 'appendi',
'svuota', 'stampa'])
mymanager = numManager()
mymanager.start()
listaNumeri = mymanager.numeri()
print id(listaNumeri)
print '------------ Process'
for i in range(5):
producer = Process(target=produce, args=(listaNumeri,)) …
Run Code Online (Sandbox Code Playgroud) 我有一个复杂的句子,我需要将它分为主要和从属条款.例如
ABC 的一句话引用了许多国家禁止使用化学添加剂的事实,并认为它们也可能在这种状态下被禁止.
需要拆分
1)ABC cites the fact
2)chemical additives are banned in many countries
3)ABC feels they may be banned in this state too.
Run Code Online (Sandbox Code Playgroud)
我想我可以使用Stanford Parser树或依赖项,但我不知道如何从这里开始.
那个树
(ROOT (S (NP (NNP ABC)) (VP (VBZ cites) (NP (DT the) (NN fact)) (SBAR (IN that) (S (NP (NN chemical) (NNS additives)) (VP (VP (VBP are) (VP (VBN banned) (PP (IN in) (NP (JJ many) (NNS countries))))) (CC and) (VP (VBZ feels) (SBAR (S (NP (PRP they)) (VP (MD may) (VP (VB …
考虑下面的numpy广播示例:
import numpy as np
import theano
from theano import tensor as T
xval = np.array([[1, 2, 3], [4, 5, 6]])
bval = np.array([[10, 20, 30]])
print xval + bval
Run Code Online (Sandbox Code Playgroud)
正如所料,向量bval
被添加到矩阵的每一行,xval
输出为:
[[11 22 33]
[14 25 36]]
Run Code Online (Sandbox Code Playgroud)
试图在theano的git版本中复制相同的行为:
x = T.dmatrix('x')
b = theano.shared(bval)
z = x + b
f = theano.function([x], z)
print f(xval)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ValueError: Input dimension mis-match. (input[0].shape[0] = 2, input[1].shape[0] = 1)
Apply node that caused the error: Elemwise{add,no_inplace}(x, <TensorType(int64, matrix)>)
Inputs …
Run Code Online (Sandbox Code Playgroud) 赛普拉斯文档表明命令是重用代码片段的正确方法,例如
Cypress.Commands.add("logout", () => {
cy.get("[data-cy=profile-picture]").click();
cy.contains("Logout").click();
});
cy.logout();
Run Code Online (Sandbox Code Playgroud)
对于像这样的简单情况,为什么我要在普通 JS 函数上使用命令(以及它附带的所有不错的 IDE 帮助)。将上面的代码片段重写为有什么缺点
export function logout(){
cy.get("[data-cy=profile-picture]").click();
cy.contains("Logout").click();
}
// and now somewhere in a test
logout();
Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的Java问题ProcessBuilder
.代码如下所示(略微简化)
public class Whatever implements Runnable
{
public void run(){
//someIdentifier is a randomly generated string
String in = someIdentifier + "input.txt";
String out = someIdentifier + "output.txt";
ProcessBuilder builder = new ProcessBuilder("./whateveer.sh", in, out);
try {
Process process = builder.start();
process.waitFor();
} catch (IOException e) {
log.error("Could not launch process. Command: " + builder.command(), e);
} catch (InterruptedException ex) {
log.error(ex);
}
}
}
Run Code Online (Sandbox Code Playgroud)
whatever.sh读取:
R --slave --args $1 $2 <whatever1.R >> r.log
Run Code Online (Sandbox Code Playgroud)
大量的实例Whatever
被提交到ExecutorService …
java ×3
nlp ×3
python ×3
stanford-nlp ×2
concurrency ×1
cypress ×1
eclipse ×1
linux ×1
matrix ×1
netbeans ×1
numpy ×1
process ×1
python-3.x ×1
r ×1
regression ×1
statistics ×1
theano ×1