小编Man*_*gra的帖子

如何检测用户输入文本的语言?

我正在处理一个接受不同语言用户输入的应用程序(目前修复了3种语言).要求是用户可以输入文本,而不必费心通过UI中提供的复选框选择语言.

是否有现有的Java库来检测文本的语言?

我想要这样的东西:

text = "To be or not to be thats the question."

// returns ISO 639 Alpha-2 code
language = detect(text);

print(language);
Run Code Online (Sandbox Code Playgroud)

结果:

EN
Run Code Online (Sandbox Code Playgroud)

我不想知道如何自己创建一个语言检测器(我已经看到很多博客试图这样做).该库应提供简单的APi,并且完全脱机工作.开源或商业封闭并不重要.

我也在SO上发现了这个问题(还有一些):

如何检测语言
如何检测文本语言?

java nlp language-detection

40
推荐指数
3
解决办法
4万
查看次数

如何替换java String中的字符?

我喜欢以有效的方式用相应的替换字符替换字符串的某组字符.

例如:

String sourceCharacters = "š???Š???žŽ";
String targetCharacters = "sdccSDCCzZ";

String result = replaceChars("Gra?iš?e", sourceCharacters , targetCharacters );

Assert.equals(result,"Gracisce") == true;
Run Code Online (Sandbox Code Playgroud)

有没有比使用replaceAllString类的方法更有效的方法?

我的第一个想法是:

final String s = "Gra?iš?e";
String sourceCharacters = "š???Š???žŽ";
String targetCharacters = "sdccSDCCzZ";

// preparation
final char[] sourceString = s.toCharArray();
final char result[] = new char[sourceString.length];
final char[] targetCharactersArray = targetCharacters.toCharArray();

// main work
for(int i=0,l=sourceString.length;i<l;++i)
{
  final int pos = sourceCharacters.indexOf(sourceString[i]);
  result[i] = pos!=-1 ? targetCharactersArray[pos] : sourceString[i];
}

// result
String resultString = …
Run Code Online (Sandbox Code Playgroud)

java string

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

这个HQL查询有什么问题?

我遇到了一个hibernate错误,或者我有一个错误,我没有看到:

select enty.number from EntityAliasName enty
  where enty.myId in
  (
    select cons.myId from Consens cons where cons.number in
    (
      select ord.number from Orders ord where ord.customer = :customer 
      and ord.creationDate <
      (
        select max(ord.creationDate) from Orders ord where ord.customer = :customer
      )
    )
  )
Run Code Online (Sandbox Code Playgroud)

我得到的是以下内容:

org.hibernate.util.StringHelper.root(StringHelper.java:257)

Caused by: java.lang.NullPointerException
        at org.hibernate.util.StringHelper.root(StringHelper.java:257)
        at org.hibernate.persister.entity.AbstractEntityPersister.getSubclassPropertyTableNumber(AbstractEntityPersister.java:1391)
        at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:54)
        at org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1367)
        at org.hibernate.hql.ast.tree.FromElement.getIdentityColumn(FromElement.java:320)
        at org.hibernate.hql.ast.tree.IdentNode.resolveAsAlias(IdentNode.java:154)
        at org.hibernate.hql.ast.tree.IdentNode.resolve(IdentNode.java:100)
        at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:117)
        at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:113)
        at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:854)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.propertyRef(HqlSqlBaseWalker.java:1172)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.propertyRefLhs(HqlSqlBaseWalker.java:5167)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.propertyRef(HqlSqlBaseWalker.java:1133)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:1993)
        at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1932)
        at …
Run Code Online (Sandbox Code Playgroud)

java hibernate hql

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

如何计算文档集的术语频率?

我有一个带有以下文件的Lucene-Index:

doc1 := { caldari, jita, shield, planet }
doc2 := { gallente, dodixie, armor, planet }
doc3 := { amarr, laser, armor, planet }
doc4 := { minmatar, rens, space }
doc5 := { jove, space, secret, planet }
Run Code Online (Sandbox Code Playgroud)

所以这5个文件使用了14个不同的术语:

[ caldari, jita, shield, planet, gallente, dodixie, armor, amarr, laser, minmatar, rens, jove, space, secret ]
Run Code Online (Sandbox Code Playgroud)

每个学期的频率:

[ 1, 1, 1, 4, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1 ]
Run Code Online (Sandbox Code Playgroud)

方便阅读:

[ caldari:1, jita:1, shield:1, planet:4, …
Run Code Online (Sandbox Code Playgroud)

java lucene

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

如何映射属性仅用于HQL(在Hibernate中)?

我有一张这样的桌子:

id | name | score
Run Code Online (Sandbox Code Playgroud)

使用Hibernate通过XML映射到POJO.分数列我只需要oder byHQL中的in 子句.score列的值由算法计算,并通过SQL批处理(JDBC)每24小时更新一次.所以我不想用我在运行时不需要的属性来污染我的POJO.

对于可能不是问题的单个列,但我有几个不同的分数列.有没有办法只为HQL使用映射属性?

例如这样:

<property name="score" type="double" ignore="true"/>
Run Code Online (Sandbox Code Playgroud)

所以我仍然可以这样做:

from Pojo p order by p.score
Run Code Online (Sandbox Code Playgroud)

但我的POJO实现可能如下所示:

public class Pojo
{
  private long id;

  private String name;

  // ... 
}
Run Code Online (Sandbox Code Playgroud)

没有为score实现添加提供或属性的Setter .

使用最新的Hibernate版本的Java.

更新:

在完美的世界中,它可以这样做(感谢Pascal Thivent):

<property name="score" access="noop" insert="false" update="false"/>
Run Code Online (Sandbox Code Playgroud)

但在我们的现实世界中存在一个多年来似乎没有人关心的错误.那么有没有人有解决方法的建议?

java orm hibernate

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

如何实现frame buster?

我正在寻找一个描述如何实现一个工作框架破坏者的指南,该框架也可以处理在浏览器中没有激活JS的人.

我读了这个非常好的问题,但我对"不要自己动手"或"也许试试......"这样的建议完全不感兴趣.我想看一篇论文,一步一步指导解释每一个"为什么"(没有可能和没有猜测).学术论文首选.

任何人都可以发布链接到这样做的事实上的圣杯纸吗?

谢谢,

javascript security ajax

2
推荐指数
1
解决办法
989
查看次数

标签 统计

java ×5

hibernate ×2

ajax ×1

hql ×1

javascript ×1

language-detection ×1

lucene ×1

nlp ×1

orm ×1

security ×1

string ×1