Class OpenNMTRule


  • @Experimental
    public class OpenNMTRule
    extends Rule
    Queries an OpenNMT server started like this: th tools/rest_translation_server.lua -replace_unk -model ...
    • Field Detail

      • defaultServerUrl

        private static final java.lang.String defaultServerUrl
        See Also:
        Constant Field Values
      • serverUrl

        private final java.lang.String serverUrl
      • mapper

        private final com.fasterxml.jackson.databind.ObjectMapper mapper
    • Constructor Detail

      • OpenNMTRule

        public OpenNMTRule​(java.lang.String serverUrl)
        Parameters:
        serverUrl - URL of the OpenNMT server, like http://127.0.0.1:7784/translator/translate
      • OpenNMTRule

        public OpenNMTRule()
        Expects an OpenNMT server running at http://127.0.0.1:7784/translator/translate
    • Method Detail

      • getId

        public java.lang.String getId()
        Description copied from class: Rule
        A string used to identify the rule in e.g. configuration files. This string is supposed to be unique and to stay the same in all upcoming versions of LanguageTool. It's supposed to contain only the characters A-Z and the underscore.
        Specified by:
        getId in class Rule
      • getDescription

        public java.lang.String getDescription()
        Description copied from class: Rule
        A short description of the error this rule can detect, usually in the language of the text that is checked.
        Specified by:
        getDescription in class Rule
      • match

        public RuleMatch[] match​(AnalyzedSentence sentence)
                          throws java.io.IOException
        Description copied from class: Rule
        Check whether the given sentence matches this error rule, i.e. whether it contains the error detected by this rule. Note that the order in which this method is called is not always guaranteed, i.e. the sentence order in the text may be different than the order in which you get the sentences (this may be the case when LanguageTool is used as a LibreOffice/OpenOffice add-on, for example).
        Specified by:
        match in class Rule
        Parameters:
        sentence - a pre-analyzed sentence
        Returns:
        an array of RuleMatch objects
        Throws:
        java.io.IOException
      • detokenize

        private java.lang.String detokenize​(java.lang.String translation)
      • getFirstDiffPosition

        int getFirstDiffPosition​(java.lang.String text1,
                                 java.lang.String text2)
      • getLastDiffPosition

        int getLastDiffPosition​(java.lang.String text1,
                                java.lang.String text2)
      • getLeftWordBoundary

        int getLeftWordBoundary​(java.lang.String text,
                                int pos)
      • getRightWordBoundary

        int getRightWordBoundary​(java.lang.String text,
                                 int pos)
      • createJson

        private java.lang.String createJson​(AnalyzedSentence sentence)
                                     throws com.fasterxml.jackson.core.JsonProcessingException
        Throws:
        com.fasterxml.jackson.core.JsonProcessingException
      • postToServer

        @NotNull
        private @NotNull java.net.HttpURLConnection postToServer​(java.lang.String json,
                                                                 java.net.URL url)
                                                          throws java.io.IOException
        Throws:
        java.io.IOException