Source code for OpenAttack.metric.algorithms.language_tool
from .base import AttackMetric
from ...tags import *
[docs]class LanguageTool(AttackMetric):
NAME = "Grammatical Errors"
TAGS = { TAG_English }
[docs] def __init__(self) -> None:
"""
Use language_tool_python to check grammer.
:Package Requirements:
* language_tool_python
:Language: english
"""
import language_tool_python
self.language_tool = language_tool_python.LanguageTool('en-US')
def after_attack(self, input, adversarial_sample):
if adversarial_sample is not None:
return len(self.language_tool.check(adversarial_sample))
[docs]class LanguageToolChinese(AttackMetric):
NAME = "Grammatical Errors"
TAGS = { TAG_Chinese }
[docs] def __init__(self) -> None:
"""
Use language_tool_python to check grammer.
:Package Requirements:
* language_tool_python
:Language: chinese
"""
import language_tool_python
self.language_tool = language_tool_python.LanguageTool('zh-CN')
def after_attack(self, input, adversarial_sample):
if adversarial_sample is not None:
return len(self.language_tool.check(adversarial_sample))