二值化是将实体的彩色特征转换为数字向量(通常是二进制向量)的行为,以便为分类器算法提供良好的示例.
如果我们将句子"猫吃狗"二进制化,我们可以先为每个单词分配一个ID(例如cat-1,ate-2,the-3,dog-4),然后简单地将单词替换为它的ID给出了矢量<3,1,2,3,4>.
给定这些ID,我们还可以通过给每个字四个可能的槽创建二进制向量,并将对应于特定单词的槽设置为1,给出向量<0,0,1,0,1,0,0,0 ,0,1,0,0,0,0,0,1>.据我所知,后一种方法通常被称为词袋方法.
现在,对于我的问题,一般来说,描述自然语言处理的特征,特别是基于转换的依赖解析(使用Nivres算法)时,最好的二值化方法是什么?
在这种情况下,我们不希望编码整个句子,而是编码解析的当前状态,例如堆栈中的顶部单词和输入队列中的第一个单词.由于订单具有高度相关性,因此排除了词袋方法.
有了最好的,我指的是,使数据的最可理解的分类方法,而无需使用了不必要的内存.例如,如果只有2%的双子星实际存在,我不想要一个单词bigram使用4亿个特征来获得20000个独特单词.
由于答案也取决于特定的分类器,我最感兴趣的是最大熵模型(liblinear),支持向量机(libsvm)和感知器,但是也欢迎适用于其他模型的答案.
我目前面临的问题是,在我的Java应用程序中,特定的SQL查询需要大约30秒才能发出,而在SQL客户端(SQL Developer)中则需要<1秒.
在问题中,
JDBC中的Java查询慢而不是其他系统(TOAD),建议使用绑定到java变量的PreparedStatement可以使查询执行速度远远慢于SQL客户端(在这种情况下为TOAD)因为Oracle对使用哪些索引感到困惑.这可能是没有参数的PreparedStatement的问题吗?
否则可能是什么问题?
查询看起来像
select
sum(col1),
sum(col2),
max(select ...)
from view_
where time_id = get_time_id(to_date('2010-10-10','yyyy-mm-dd'))
Run Code Online (Sandbox Code Playgroud)
其中view_是一个包含表和其他复杂视图聚合的复杂视图.查询作为PreparedStatement执行,但没有任何参数.我们是使用预准备语句还是仅使用普通语句似乎没有区别.
由于执行计划非常庞大,我不能在这里发布所有内容,但相关的差异似乎是:
UNION-ALL TABLE ACCESS FULL GVC_WH.PLAYER_FACT_DAILY TABLE 37 6717151 596,934.317 19940 240 7621178231 19502
UNION-ALL TABLE ACCESS BY INDEX ROWID GVC_WH.PLAYER_FACT_DAILY TABLE 38 2657 236.120 2429 30 20544658 2428 INDEX RANGE SCAN GVC_WH.PK_AGG_PLAYER INDEX (UNIQUE) 37 2657 16 1 638743 16
第一个片段来自使用JDBC瘦客户端运行时的第二个片段,第二个片段来自在SQL Developer中运行时的片段.当使用JDBC瘦客户端作为语句(无论我是否使用预准备语句)运行时,它没有获取正确的索引.第一个时间差为30秒,第二个时间为0.5秒.
可能是因为使用函数get_time_id禁止在使用JDBC时使用索引,即使它不是列上的函数,即使它似乎在SQL Developer中工作?
我想知道当你把它们放在Java ArrayList中时,是否有可能没有 jython automagicaly将java对象转换为python类型.
从jython-console复制的示例:
>>> b = java.lang.Boolean("True");
>>> type(b)
<type 'javainstance'>
>>> isinstance(b, java.lang.Boolean);
1
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好,但如果我把对象放在ArrayList中
>>> l = java.util.ArrayList();
>>> l.add(b)
1
>>> type(l.get(0))
<type 'int'>
Run Code Online (Sandbox Code Playgroud)
该对象被转换为类似python的布尔值(即int)和...
>>> isinstance(l.get(0), java.lang.Boolean)
0
Run Code Online (Sandbox Code Playgroud)
这意味着我再也看不到这曾经是java.lang.Boolean.
澄清
我想真正想要实现的是在将对象从Java传递到Python时摆脱从Java类型到Python类型的隐式转换.我将举一个澄清的例子.
一个Python模块:
import java
import IPythonModule
class PythonModule(IPythonModule):
def method(self, data):
print type(data);
Run Code Online (Sandbox Code Playgroud)
以及使用此模块的Java类:
import java.util.ArrayList;
import org.python.core.PyList;
import org.testng.annotations.*;
import static org.testng.AssertJUnit.*;
public class Test1 {
IPythonModule m;
@BeforeClass
public void setUp() {
JythonFactory jf = JythonFactory.getInstance();
m = (IPythonModule) jf.getJythonObject(
"IPythonModule", …Run Code Online (Sandbox Code Playgroud) 我目前的jgroups配置有问题,导致数千条消息卡在NAKACK.xmit_table中.实际上所有这些似乎最终都在xmit_table中,而几个小时后的另一个转储表明它们从未打算离开...
这是协议栈配置
UDP(bind_addr=xxx.xxx.xxx.114;
bind_interface=bond0;
ip_mcast=true;ip_ttl=64;
loopback=false;
mcast_addr=228.1.2.80;mcast_port=45589;
mcast_recv_buf_size=80000;
mcast_send_buf_size=150000;
ucast_recv_buf_size=80000;
ucast_send_buf_size=150000):
PING(num_initial_members=3;timeout=2000):
MERGE2(max_interval=20000;min_interval=10000):
FD_SOCK:
FD(max_tries=5;shun=true;timeout=10000):
VERIFY_SUSPECT(timeout=1500):
pbcast.NAKACK(discard_delivered_msgs=true;gc_lag=50;retransmit_timeout=600,1200,2400,4800;use_mcast_xmit=true):
pbcast.STABLE(desired_avg_gossip=20000;max_bytes=400000;stability_delay=1000):UNICAST(timeout=600,1200,2400):
FRAG(frag_size=8192):pbcast.GMS(join_timeout=5000;print_local_addr=true;shun=true):
pbcast.STATE_TRANSFER
Run Code Online (Sandbox Code Playgroud)
启动消息......
2010-03-01 23:40:05,358 INFO [org.jboss.cache.TreeCache] viewAccepted(): [xxx.xxx.xxx.35:51723|17] [xxx.xxx.xxx.35:51723, xxx.xxx.xxx.36:53088, xxx.xxx.xxx.115:32781, xxx.xxx.xxx.114:32934]
2010-03-01 23:40:05,363 INFO [org.jboss.cache.TreeCache] TreeCache local address is 10.35.191.114:32934
2010-03-01 23:40:05,393 INFO [org.jboss.cache.TreeCache] received the state (size=32768 bytes)
2010-03-01 23:40:05,509 INFO [org.jboss.cache.TreeCache] state was retrieved successfully (in 146 milliseconds)
Run Code Online (Sandbox Code Playgroud)
...表示到目前为止一切都很好.
设置为警告级别的日志并不表示除了某种情况之外出现了问题
2010-03-03 09:59:01,354 ERROR [org.jgroups.blocks.NotificationBus] exception=java.lang.IllegalArgumentException: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
我猜的是不相关的,因为早在没有内存记忆问题的情况下就已经看到了它.
我一直在挖掘其中一台机器的两个内存转储器以找到奇怪的东西,但到目前为止还没有.除了可能来自不同协议的一些统计数据
UDP有
num_bytes_sent 53617832
num_bytes_received 679220174
num_messages_sent 99524
num_messages_received 99522
Run Code Online (Sandbox Code Playgroud)
虽然NAKACK有...... …
我刚刚建立了我的第一个Android开发环境
我已经将$ PATH设置为我的SDK/tools目录(如果我只使用Eclipse,这应该无关紧要?)并启动Eclipse,但是当我尝试在Eclipse中设置SDK的路径时,我收到错误" parseSdkContent失败".抛出异常的堆栈跟踪是
java.lang.IllegalArgumentException: http://www.w3.org/2001/XMLSchema
at javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:181)
at com.android.ide.eclipse.adt.internal.sdk.LayoutDevicesXsd.getValidator(Unknown Source)
at com.android.ide.eclipse.adt.internal.sdk.LayoutDeviceManager.parseLayoutDevices(Unknown Source)
at com.android.ide.eclipse.adt.internal.sdk.LayoutDeviceManager.loadDefaultLayoutDevices(Unknown Source)
at com.android.ide.eclipse.adt.internal.sdk.LayoutDeviceManager.loadDefaultAndUserDevices(Unknown Source)
at com.android.ide.eclipse.adt.internal.sdk.Sdk.<init>(Unknown Source)
at com.android.ide.eclipse.adt.internal.sdk.Sdk.loadSdk(Unknown Source)
at com.android.ide.eclipse.adt.AdtPlugin$13.run(Unknown Source)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Run Code Online (Sandbox Code Playgroud)
我无法看到我在设置过程中遗漏了任何内容,根据说明它应该基本上只是开箱即用.关于为什么会失败的任何想法?
是否有可能告诉JVM提示操作系统某个对象最好不会被推出交换空间?