小编MWi*_*ner的帖子

OpenNLP培训的'cut-off'和'iteration'是什么意思?

是什么意思cut-off,并iteration在OpenNLP培训?或者就此而言,自然语言处理.我只需要一个外行解释这些术语.据我所知,迭代是算法重复的次数,并且截断是一个值,如果文本的值高于某个特定类别的截止值,它将被映射到该类别.我对吗?

text-mining opennlp

8
推荐指数
1
解决办法
1741
查看次数

写入Lucene索引,一次一个文档,随着时间的推移逐渐减慢

我们有一个程序,它可以持续运行,执行各种操作,并更改数据库中的某些记录.这些记录使用Lucene编制索引.因此,每次我们更改实体时,我们都会执行以下操作:

  1. 打开db transaction,打开Lucene IndexWriter
  2. 在事务中对db进行更改,indexWriter.deleteDocuments(..)然后使用then 更新Lucene中的该实体indexWriter.addDocument(..).
  3. 如果一切顺利,请提交db事务并提交IndexWriter.

这很好,但随着时间的推移,indexWriter.commit()需要越来越多的时间.最初它需要大约0.5秒,但在几百次此类交易之后需要超过3秒.如果脚本运行时间更长,我不怀疑它会花费更长的时间.

到目前为止,我的解决方案是注释掉indexWriter.addDocument(..)indexWriter.commit(),并且indexWriter.deleteAll()在一个Lucene transction/IndexWriter(大约14秒内大约250k文档)中首先使用然后重新添加所有文档来重新创建整个索引.但这显然违背了数据库和Lucene提供的事务方法,它使两者保持同步,并使我们使用Lucene搜索的工具的用户可以看到数据库的更新.

我可以在14秒内添加250k文档,但添加1个文档需要3秒钟,这似乎很奇怪.我做错了什么,我该如何改善这种情况?

java lucene indexing performance

8
推荐指数
1
解决办法
3193
查看次数

如何测试Java EE7 Websocket

我已经使用Java EE 7提供的api实现了一个WebSocket.此外,我已经实现了一个请求我的WebSocket没有任何问题的客户端.为了确保在执行某些代码更改时这仍然有效,我想实现测试,这些测试也可以在构建服务器上运行,例如Jenkins CI,而不仅仅是在本地.我正在使用maven.

这是我的服务器端点:

import javax.enterprise.context.ApplicationScoped;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

@ApplicationScoped
@ServerEndpoint("/example")
public class WebSocket {

    private final Set<Session> sessions = Collections.synchronizedSet(new HashSet<>());

    @OnOpen
    public void open(Session session) {
        sessions.add(session);
    }

    @OnClose
    public void close(Session session) {
        sessions.remove(session);
    }

    @OnError
    public void onError(Throwable error) {
        //TODO do something
    }

    @OnMessage
    public void handleMessage(String message, Session session) throws IOException {
        session.getBasicRemote().sendText("Hello "+message+"!");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的客户端端点:

import javax.websocket.*;
import java.io.IOException;
import java.net.URI;

@ClientEndpoint …
Run Code Online (Sandbox Code Playgroud)

java java-ee-7 tomee java-websocket tomee-7

8
推荐指数
1
解决办法
5500
查看次数

为什么EntityManager为空?

在我的Web应用程序中,我在Apache Tomcat(TomEE)/7.0.37服务器上使用OpenJPA.我使用Netbeans自动生成类("实体类来自数据库......"和"会话Bean来自实体类......").在SessionBean(例如UserFacade)我想获得EntityManager:

@Stateless
public class UserFacade extends AbstractFacade<User> {
  @PersistenceContext(unitName = "CollDocPU")
  private EntityManager em;

  @Override
  protected EntityManager getEntityManager() {
    return em;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我通过上面的方式得到它时,我得到了null.当我通过:

@Override
protected EntityManager getEntityManager() {
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("CollDocPU");
    EntityManager ecm = emf.createEntityManager(); 
    return ecm;
}    
Run Code Online (Sandbox Code Playgroud)

ecm不是null,没关系

我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="CollDocPU" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>model.entity.StudentAddSolution</class>
<class>model.entity.Lecturer</class>
<class>model.entity.Solution</class>
<class>model.entity.Student</class>
<class>model.entity.Course</class>
<class>model.entity.File</class>
<class>model.entity.CourseHasLecturer</class> 
<class>model.entity.Mail</class>
<class>model.entity.StudentAtCourse</class>
<class>model.entity.Roles</class>
<class>model.entity.Task</class>
<class>model.entity.User</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
   <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:11080/myBase?zeroDateTimeBehavior=convertToNull"/>
   <property name="javax.persistence.jdbc.password" value="pass,"/>
   <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
   <property …
Run Code Online (Sandbox Code Playgroud)

java entitymanager openjpa persistence.xml tomee

7
推荐指数
1
解决办法
3万
查看次数

修改Eclipse提供的默认getter和setter方法有哪些设置?

我正在使用Eclipse Kepler来开发我的Java项目.我创建了一个vo并在vo中添加了一些属性.为这些属性生成getter和setter方法,我右键单击一个属性然后转到"Source"然后单击"Generates Getters and Setters".它向我展示了属性的可用getter/setter方法.下面是屏幕截图

在此输入图像描述

正如你可以在上面的截图中看到,Eclipse是我提供getter和setter方法的属性SID

public String getsId() {
        return sId;
}

public void setsId(String sId) {
        this.sId = sId;
}
Run Code Online (Sandbox Code Playgroud)

get和set之后的第一个字母是小写字母(get s Id和set s Id).

对于属性,Eclipse正在创建所需的getter和setter方法.

我的观察是,任何财产,其第二个字母是大写(对于示例- SID:第一个字母(小号)是在小型和第二信()是资本)日食发生在以下格式的getter和setter

get+property name
set+property name
Run Code Online (Sandbox Code Playgroud)

但如果属性第二个字母是小写字母 eclipse正在以下面的格式生成getter和setter

get+1st letter in capital letter+ rest of the property name
set+1st letter in capital letter+ rest of the property name
Run Code Online (Sandbox Code Playgroud)

即使如果该属性的第一个字母是大写字母,eclipse也会以下面的格式生成getter和setter

get+1st letter (which is already in …
Run Code Online (Sandbox Code Playgroud)

java eclipse

7
推荐指数
1
解决办法
585
查看次数

如何将 ArchiveEntry 转换为 InputStream?

我正在阅读tar.gz档案使用

ArchiveEntry entry = tarArchiveInputStream.getNextEntry();

问题:如何将此ArchiveEntry转换为 ,InputStream以便我可以实际读取文件并将其处理为String

java apache-commons-compress

7
推荐指数
1
解决办法
3213
查看次数

从哪个版本开始,Hibernate 将支持 JPA 2.2?

由于 Java EE 8 包括 JPA 2.2 于今年夏天发布,因此很高兴知道 Hibernate 何时会支持它。提到 Hibernate 5.2 支持 JPA 2.1。Hibernate 6.0 路线图没有任何对 JPA 2.2 支持的引用。

谢谢。

hibernate jpa-2.0 jpa-2.2

7
推荐指数
2
解决办法
3521
查看次数

发现JavaFX中的GUI故障

我发现我的JavaFX应用程序在Windows 10上不起作用 - GUI绘制空白.我可以通过强制JAvaFX使用软件渲染来解决这个问题-Dprism.order=sw.

对于这个解决方案,我必须知道它会提前失败.是否有推荐的方法从正在运行的应用程序中检查这一点,如果发现绘图失败,则使用软件渲染"重绘"?

更新:下面的Prism.verbose输出.我认为棱镜'认为'它画得正确.我还注意到"翻转"指针图标更改显示在不同位置,并且文档下载链接似乎不起作用.可能是hdpi有关吗?

Prism.verbose输出

java javafx

7
推荐指数
0
解决办法
173
查看次数

如何在CXF拦截器上下文中使用@Inject或@EJB?

有没有办法在CXF拦截器中使用@Inject或@EJB?我知道我仍然可以进行JNDI查找,但我宁愿避免它.

我发现管理JAX-WS处理程序但CXF拦截器不是很奇怪.是否可以管理它们?我正在使用注释将我的拦截器添加到端点(@org.apache.cxf.interceptor.InInterceptors@org.apache.cxf.interceptor.InInterceptors),是否可以使用配置文件进行处理?

组态:

  • Java 6
  • JBoss EAP 6.1(AS 7.2)
  • CXF 2.6.6

java dependency-injection cxf jax-ws

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

如何为用户提供的国家/地区名称预测正确的国家名称

我打算对我的数据进行一些数据调整.

情况 - 我有一个有字段的数据country.它包含用户输入的国家/地区名称(可能包含拼写错误或同一国家/地区的不同国家/地区名称,例如美国/美国/美国).我有一个正确的国家/地区名称列表.

我想要的 - 预测它指的是哪个最近的国家.例如 - 如果U.S.给出,那么它将更改为USA(在我们的列表中更正国家名称).

我有什么方法可以使用Java或opennlp或任何其他方法吗?

java nlp text-mining string-matching opennlp

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