コード例 #1
0
def rouge_l(candidate_tokens, reference_tokens, beta=1):
    """
    Return the ROUGE-L score (longest common subsequence), where
    candidate_tokens is a sequence of candidate tokens,
    reference_tokens is a sequence of reference tokens, and
    beta determines the relative importance of recall in the F-measure
    """
    lcs = len(longest_common_subsequence(candidate_tokens, reference_tokens))
    recall = lcs / float(len(reference_tokens))
    precision = lcs / float(len(candidate_tokens))

    try:
        return (((1 + beta**2) * precision * recall) /
                (beta**2 * precision + recall))
    except ZeroDivisionError:
        return 0
コード例 #2
0
ファイル: rouge.py プロジェクト: emsrc/daeso-framework
def rouge_l(candidate_tokens, reference_tokens, beta=1):
    """
    Return the ROUGE-L score (longest common subsequence), where
    candidate_tokens is a sequence of candidate tokens,
    reference_tokens is a sequence of reference tokens, and
    beta determines the relative importance of recall in the F-measure
    """
    lcs = len(longest_common_subsequence(candidate_tokens, reference_tokens))
    recall = lcs / float(len(reference_tokens))
    precision = lcs / float(len(candidate_tokens))

    try:
        return ( ((1 + beta ** 2) * precision * recall )  /
                 (beta ** 2 * precision + recall) )
    except ZeroDivisionError:
        return 0
コード例 #3
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_string(self):
     lcs = longest_common_subsequence(self.s1, self.s2)
     self.assertEqual(lcs, self.s1)
コード例 #4
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_none2(self):
     lcs = longest_common_subsequence("", "")
     self.assertEqual(lcs, "")
コード例 #5
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_identity(self):
     lcs = longest_common_subsequence(self.s1, self.s1)
     self.assertEqual(lcs, self.s1)
コード例 #6
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_list(self):
     lcs = longest_common_subsequence(list(self.s1), list(self.s2))
     self.assertEqual(lcs, list(self.s1))
コード例 #7
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_tuple(self):
     lcs = longest_common_subsequence(tuple(self.s1), tuple(self.s2))
     self.assertEqual(lcs, tuple(self.s1))
コード例 #8
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_none2(self):
     lcs = longest_common_subsequence("", "")
     self.assertEqual(lcs, "")   
コード例 #9
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_identity(self):
     lcs = longest_common_subsequence(self.s1, self.s1)
     self.assertEqual(lcs, self.s1)
コード例 #10
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_list(self):
     lcs = longest_common_subsequence(list(self.s1), 
                                      list(self.s2))
     self.assertEqual(lcs, list(self.s1))
コード例 #11
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_tuple(self):
     lcs = longest_common_subsequence(tuple(self.s1), 
                                      tuple(self.s2))
     self.assertEqual(lcs, tuple(self.s1))
コード例 #12
0
ファイル: test_lcs.py プロジェクト: emsrc/daeso-framework
 def test_lcs_string(self):
     lcs = longest_common_subsequence(self.s1, self.s2)
     self.assertEqual(lcs, self.s1)