zoukankan      html  css  js  c++  java
  • Stanford NLP 课程笔记之计算字符串距离

    在自然语言处理任务中,有时候需要计算两个字符串之间的相似度,也可以称作是两者之间的距离,用最小编辑距离表示。

    最小编辑距离用{Insertion,Deletion,Substitution}这三种操作把一个字符串转化成另一个字符串所需的操作次数,等同于LeetCode上的第72题,描述如下:

    Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)

    You have the following 3 operations permitted on a word:

    a) Insert a character
    b) Delete a character
    c) Replace a character

     本题使用递归算法,设D(i,j)为字符串m的前i个字符组成的字符串和n的前j个字符组成的字符串之间的最小编辑距离,然后逐渐递归得到D(m,n)的值,也即是word1和word2之间的距离。

    Initialization:

      D(i,0)=i;

      D(0,j)=j;

    Recurrence Relation:

      For each i=1...M

        For each j=1...N

                  D(i-1,j)+1      //删除操作

          D(i,j)=min   D(i,j-1)+1      //增加操作

                  D(i-1,j-1)+X   //替换操作,替换的代价是X,X可以自己设置

      Termination:

        D(M,N)就是我们要求的距离

    代码如下:

    class Solution {
        public int minDistance(String word1, String word2) {
            int[][] strLen = new int[word1.length()+1][word2.length()+1];
            
            for (int i=0;i<=word1.length();i++) strLen[i][0] = i;
            for (int j=0;j<=word2.length();j++) strLen[0][j] = j;
          
            for (int i=1;i<=word1.length();i++){
                for(int j=1;j<=word2.length();j++){
                    if(word1.charAt(i-1)==word2.charAt(j-1)) strLen[i][j] = strLen[i-1][j-1];
                    else{
                        strLen[i][j]=Math.min(strLen[i-1][j],strLen[i][j-1]);
                        strLen[i][j]=Math.min(strLen[i][j],strLen[i-1][j-1])+1;
                    }
                }
            }
            
            return strLen[word1.length()][word2.length()];
        }
    }
  • 相关阅读:
    Scala 基础(六):Scala变量 (三) 标识符
    Scala 基础(八):Scala 程序流程控制
    Scala 基础(四):Scala变量 (一) 基础
    JAVA DOM4j解析XML数据到自定义javabean
    java Domj4读取xml文件加强训练案例
    java Domj4读取xml文件
    大型网站架构演变和知识体系
    xml之DOM方式解析,DOM4J工具解析原理
    XML解析之JAXP案例详解
    华为大企业信息安全解决方案简介
  • 原文地址:https://www.cnblogs.com/whig/p/8436557.html
Copyright © 2011-2022 走看看