小编pAn*_*rei的帖子

文本自动纠正的动态算法

我正在编写一个自动更正的程序,该程序使用levenshtein距离来校正不超过64个字符的短语,该短语基于包含8000个单词的特定字典.

字典在每一行包含"Word word_frequency"对.我使用DictionarEntry对象来存储这些对.类Dictionar Entry有两个字段:value:存储单词字符串freq:存储频率字典存储为LinkedList.我从stdin读取了64个字符串.在处理之前我删除所有空格."Coo lweather" - >"Coolweather"我注意到计算每个前缀的levenshtein距离,在由levenshtein动态计算的矩阵的最后一行(参见维基百科示例)中,它返回所有前缀的距离.

函数lev将包含第二个参数字符串的l.distance的向量返回给所有第一个前缀,包括它自己.

我的问题是我必须遵守一些额外的规则:min lev.距离 - >最小字数 - >最大频率总和 - >最小字典值这可以解释为解决方案的总数大于1,我们采用具有最少字数的那些.如果还有不止一个,我们会遵循规则列表.

我正在应用的动态类似于背包动态.我不知道如何实现最小字数规则(最大频率一个非常相似)

这是我到目前为止尝试的输入/输出示例,其中失败了:"疼痛保留"答案应该如此保留,我获得的实际上是如此重新服务我选择了这种方法,因为它更有效.Java的时间限制为2秒.

更新:4月7日.我找到了问题的解决方案,但是cpu时间太长,所以我需要优化它.它不应高于2000毫秒,目前大约为6000毫秒.所以现在我的主要重点是优化它.

 public static String guess (String input, LinkedList<DictionarEntry> Dictionar){
       String curent = new String();
      String output = new String();

      int costMatrix[][][] = new int [input.length()][8000][input.length()];         
     int index[] = new int[128];
     int prev[]= new int[128];
        int d[]=new int  [128];
        int freq[]= new int[128];
        int wcount[]=new int[128];
        String values[] = new String[128];   
        for (int i=0 ; i < 128 ; …
Run Code Online (Sandbox Code Playgroud)

java dynamic-programming autocorrect levenshtein-distance

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

确定距离点的特定距离和角度的对象的坐标

在二维空间中,我有一个坐标为x1和y1的物体,它面向一个特定的方向,我们称之为"观察者".在开始时,测量对象旋转的角度为0,因此对象始终面向相同的方向.角度由称为yrot的变量测量.

设D是由sqrt((x1-x2)^ 2 +(y1-y2)^ 2)确定的距离,考虑该距离已知.

现在,知道观察者坐标,D距离和yrot角度我想要确定距观察者对象的脸部距离D的物体的坐标x2,y2.

为了澄清这一点,我将添加一个简单的矩阵来解释我想要的东西:

Z 0 0

0 0 0

0 0 V

V是观察者,V面向Z.我只对V前面的物体(特定距离)感兴趣.换句话说,假设Z与V的距离为D(已知),我只对Z是一个对象感兴趣,而不是其他任何东西.

我相信所需的坐标是x2 = x1(+/-)d*sin yrot; y2 = y1(+/-)d*cos yrot; 我不确定这是否是正确的公式,它似乎不起作用.我也不确定第二个操作数的符号.

如果有任何不清楚的地方,请留下评论,我会尽快回答.

谢谢!

稍后编辑:|| < - 面向观众,yrot = 0; [] < - viewer

        = [] <- viewer yrot = 90 degrees. 
Run Code Online (Sandbox Code Playgroud)

这应该澄清yrot是什么.此外,对象可以旋转我想要的(> 2 PI),它可以顺时针和逆时针旋转.

Charles Bretana的回答几乎是正确的,我不确定它是否覆盖过度旋转(旋转> 360度)并向不同方向旋转.

math geometry 2d rotation coordinates

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