我正在使用NLTK WordNet Lemmatizer进行词性标注项目,首先将训练语料库中的每个单词修改为其词干(就地修改),然后仅对新语料库进行训练.但是,我发现lemmatizer没有按照我的预期运行.
例如,单词loves被词典化love是正确的,但是这个词甚至在词形还原之后loving仍然存在loving.这loving就像句子"我喜欢它"一样.
不是love变形词的词干loving?同样,许多其他"ing"形式仍然存在于词形还原之后.这是正确的行为吗?
什么是其他一些准确的引理器?(不需要在NLTK中)是否有形态分析器或词形变换器在决定单词词干时还考虑了单词的词性标记?例如,单词killing应该具有kill词干if killing用作动词,但killing如果它用作名词,则它应该具有词干(如the killing was done by xyz).
我正在开发一个基于通知的应用程序,我需要收听传入的通知.我已经能够收听来电,短信,邮件等.我不知道如何通过代码在Whatsapp上听朋友的ping或消息.这可以实际完成吗?如果是这样,怎么样?可以使用Accessibility Service,使用Package Name作为"com.whatsapp"吗?
android android-intent android-notifications android-notification-bar android-broadcast

我需要了解Wifi三角测量基本上是如何工作的.场景如上图所示.为了实现wifi三角测量,我需要至少3个Wifi热点及其位置.设置:
1.为简单起见,我们假设我有1平方公里乘1平方公里的区域,我在这个区域有3个Wifi热点.坐标系如下:方形区域的1角为(0,0,0),对角最远的角为坐标(1,1,1).所有位置确定都是相对于该坐标系统单独进行的(为简单起见,我不需要全局xyz坐标).在此范围内,我在(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)处有3个wifi热点.
我们有一个人有一个能够接收wifi信号并计算位置(x,y,z)信号强度的设备.该设备可以是手机,平板电脑等
.问题:动态计算人的位置(x,y,z),当你现在有以下输入时它们四处移动:
1.从每个输入接收的信号的信号强度wifi热点
2.以前存储在变量或数据库中的wifi热点的坐标.
第一个问题:如何根据输入计算位置?我假设信号强度与路由器的距离成正比,但具体的关系是什么?Skyhook如何准确地做到这一点?
第二个问题:我认为上述投入已足够.还有什么需要吗?
谢谢!
我有一个完全连接的多层感知器在Keras训练.我给它一个N维特征向量,它预测输入向量的M类中的一个.培训和预测运作良好.现在我想分析输入特征向量的哪个部分实际负责特定类.
例如,让我们说,有两个类A和B,以及输入向量f.向量f属于类A,网络正确地预测它 - 网络的输出是A=1 B=0.因为我有一些领域知识,我知道整个f实际上不负责f归属A,只有内部的某个部分f负责.我想知道神经网络是否捕获了那个.绘制与图像的对应关系,如果图像中I有图像cat(具有一些草背景)并且训练有素的网络正确预测,则网络必须知道整个图像实际上不是图像cat; 网络内部知道cat图像中的位置.同样,在我的情况下,网络知道f它属于哪个部分A.我想知道那是什么部分.
我四处搜索,并相信我想要做的是为我的网络寻找Saliency Maps,以获得给定的输入.那是对的吗?
如果我已经正确理解它,Saliency Maps就是简单的(change in output)/(change in input),只需1个反向传播操作即可找到,其中我找到输出相对于输入的导数.
我在Keras找到了以下代码片段,但我不确定它是否正确:
inp = model.layers[0].get_input()
outp = model.layers[-1].get_output()
max_outp = T.max(outp, axis=1)
saliency = theano.grad(max_outp.sum(), wrt=inp)
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,当计算梯度时,反向传播实际上是在发生吗?输出是输入的非线性函数,因此找到梯度的唯一方法是做backprop.但是在上面的代码中,没有什么可以连接theano和网络,theano如何"了解"网络?据我所知,在使用Theano计算渐变时,我们首先根据输入和输出定义函数.所以theano必须知道非线性函数是什么.我不认为在上面的片段中是真的..
更新:上面的代码不起作用,因为我有一个完全连接的MLP.它给出了一个错误,说"密集对象没有get_output()".我有以下Keras函数,它计算给定输入的网络输出.我想现在找到输入的这个函数的渐变:
get_output = K.function([self.model.layers[0].input],[self.model.layers[-1].output])
Run Code Online (Sandbox Code Playgroud) 我有这段代码:
while((line=br.readLine())!=null)
{
String Words[]= line.split(" ");
outputLine = SomeAlgorithm(Words);
output.write(outputLine);
}
Run Code Online (Sandbox Code Playgroud)
正如您在上面的代码中所看到的,对于输入文件中的每一行,我正在读取一行,在其上运行一些算法,它基本上修改了该行,然后将输出行写入某个文件.
文件中有9k行,整个程序在我的机器上花了3分钟.
我想,好吧,我正在为算法的每个(行)运行做2个I/O. 所以我做了大约18k I/O. 为什么不首先收集所有行ArrayList,然后遍历列表并在每行上运行算法?还将每个输出收集到一个字符串变量中,然后在程序结束时写出所有输出一次.
这样,我整个程序总共有2个大I/O(18k小文件I/O到2个大文件I/O).我觉得这会更快,所以我写了这个:
List<String> lines = new ArrayList<String>();
while((line=br.readLine())!=null)
{
lines.add(line); // collect all lines first
}
for (String line : lines){
String Words[] = line.split(" ");
bigOutput+=SomeAlgorithm(Words); // collect all output
}
output.write(bigOutput);
Run Code Online (Sandbox Code Playgroud)
但是,这件事需要7分钟!
那么,为什么循环遍历ArrayList要慢于逐行读取文件?
注意:通过readLine()收集所有行并写入bigOutput都只需要几秒钟.SomeAlgorithm()也没有变化.所以,当然,我认为罪魁祸首是for (String line: lines)
更新:正如下面各种评论中所提到的,问题不在于ArrayList遍历,而是使用+ =累积输出的方式.转移到StringBuilder()确实给出了比原始结果更快的结果.
我正在为android构建一个paint应用程序.扩展随SDK提供的FingerPaint应用程序示例.但是,与FingerPaint不同,我使用SurfaceView和单独的渲染线程来绘制表面.所有这些都非常标准和直接.运作良好.但是,我希望在绘画表面上给出白色背景,这就像在白纸上画画一样.默认背景为黑色.我的表面视图的线程调用视图的onDraw()方法.
我在这里面临的问题是,如果我将背景颜色或背景资源设置为SurfaceView,则在下次渲染视图时,此背景将覆盖曲面的上一个绘图.我将用一个例子来解释这个:
假设我将背景设置为白色.现在,应用程序启动,我的SurfaceView具有白色.好的,到目前为止还不错.现在,我用手指在这个表面上画了一条红色的线条.该线现在显示在白色表面上.好.现在,这应该是一个绘画应用程序,并假设我想画一辆车.那么,我用手指画出第二条红线.第二行画在屏幕上,但我之前绘制的第一行消失了.也就是说,因为我已经为SurfaceView设置了一些背景,所以再次绘制背景,从而覆盖绘制的第一行.现在屏幕仅显示绘制的第2行.
显然,我不希望这种情况发生.当我不尝试改变背景时(即,在默认的黑色背景上显示两条线,没有有效的背景),代码完美地工作.但是当我设置一些理想的背景时,就会发生这种情况.有没有办法以某种方式拥有静态背景,每次都不会绘制?我希望背景只绘制一次,所有后续绘图都应该在这个背景上进行.我不希望android运行时,每次绘制我的视图时绘制背景,从而覆盖之前渲染中该视图上的所有绘图.有办法解决这个问题吗?
我尝试过的事情是:
使用android:background在XML中设置SurfaceView的背景颜色.
做到这一点,使用风格的概念.(指定样式值并在布局文件中引用它).样式只将背景颜色定义为#FFFFFFFF(白色).
将样式2设置为SurfaceView的父视图(RelativeLayout).
将样式2设置为整个应用程序,作为主题,在我的清单文件中使用android:theme.
将SurfaceView的背景可绘制设置为纯白色图像.
从代码中调用我的SurfaceView的setBackgroundColor,this.setBackgroundColor(Color.WHITE).
谢谢.
android background background-color surfaceview surfaceholder
我N先训练了网络并将其与保护程序一起保存到检查点Checkpoint_N.其中定义了一些变量范围N.
现在,我想使用这个训练有素的网络构建一个暹罗网络N,如下所示:
with tf.variable_scope('siameseN',reuse=False) as scope:
networkN = N()
embedding_1 = networkN.buildN()
# this defines the network graph and all the variables.
tf.train.Saver().restore(session_variable,Checkpoint_N)
scope.reuse_variables()
embedding_2 = networkN.buildN()
# define 2nd branch of the Siamese, by reusing previously restored variables.
Run Code Online (Sandbox Code Playgroud)
当我做以上,恢复语句抛出一个Key Error是siameseN/conv1不是在为每一个变量检查点文件中N的图表.
有没有办法做到这一点,而不改变代码N?我只是基本上为每个变量和操作添加了一个父作用域N.我可以通过告诉tensorflow忽略父范围或其他东西来将权重恢复到正确的变量吗?
当我打电话给glRotatef这样的时候:
glRotatef(angle,0.0,1.0,0.0) //rotate about y-axis
Run Code Online (Sandbox Code Playgroud)
我知道它是关于旋转angle的y axis.
但是,什么正在这里旋转?究竟是哪个对象?
可能是一个愚蠢的问题,但我对此完全陌生.
我能够使用这里的答案旋转关于它的端点的一条线,但我真的不明白它是如何在内部工作的.
我现在使用sklearn的svm模块的方法是使用它的默认值.但是,它对我的数据集没有特别好.是否可以提供自定义丢失功能或自定义内核?如果是这样,编写这样一个函数的方式是什么,以便它与sklearn的svm期望的内容以及如何将这样的函数传递给培训师?
这是一个如何做到这一点的例子:
SVM自定义内核
这里引用的代码:
def my_kernel(x, y):
"""
We create a custom kernel:
(2 0)
k(x, y) = x ( ) y.T
(0 1)
"""
M = np.array([[2, 0], [0, 1.0]])
return np.dot(np.dot(x, M), y.T)
Run Code Online (Sandbox Code Playgroud)
我想了解这个内核背后的逻辑.如何选择内核矩阵?到底是y.T什么?
我为一个项目实施了Adaboost,但我不确定我是否正确理解了adaboost.这是我实施的内容,如果是正确的解释,请告诉我.
现在我用adaboost.我对adaboost的解释是它会找到一个最终的分类器作为我上面训练过的分类器的加权平均值,它的作用是找到这些权重.因此,对于每个训练示例,我有8个预测,并且我使用adaboost权重组合它们.请注意,通过此解释,在adaboost迭代期间不会重新训练弱分类器,仅更新权重.但是更新后的权重实际上会在每次迭代中创建新的分类器.
这是伪代码:
all_alphas = []
all_classifier_indices = []
initialize all training example weights to 1/(num of examples)
compute error for all 8 networks on the training set
for i in 1 to T:
find the classifier with lowest weighted error.
compute the weights (alpha) according to the Adaboost confidence formula
Update the weight distribution, according to the weight update formula in Adaboost.
all_alphas.append(alpha)
all_classifier_indices.append(selected_classifier)
Run Code Online (Sandbox Code Playgroud)
经过T反复,有T阿尔法和T分类指数; 这些T分类器索引将指向8个神经网络预测向量之一.
然后在测试集上,对于每个例子,我通过总结来预测alpha*classifier …
android ×3
python ×3
algorithm ×2
adaboost ×1
arraylist ×1
background ×1
c++ ×1
ios ×1
java ×1
keras ×1
nlp ×1
nltk ×1
opengl ×1
opengl-1.x ×1
scikit-learn ×1
surfaceview ×1
svm ×1
tensorflow ×1
theano ×1
wifi ×1