当前位置: 首页>>代码示例>>Java>>正文


Java DetectorFactory类代码示例

本文整理汇总了Java中com.cybozu.labs.langdetect.DetectorFactory的典型用法代码示例。如果您正苦于以下问题:Java DetectorFactory类的具体用法?Java DetectorFactory怎么用?Java DetectorFactory使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


DetectorFactory类属于com.cybozu.labs.langdetect包,在下文中一共展示了DetectorFactory类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getDetectorForLanguage

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
/**
 * Gets a customized detector for a given language.
 *
 * TODO(P1) Adding priority on the language seems to be relatively useless.
 * To be reviewed.
 *
 * @param language
 * @return a {@link Detector} customized for that language
 * @throws LangDetectException
 */
private Detector getDetectorForLanguage(String language) throws LangDetectException {
    Detector detector = DetectorFactory.create();
    HashMap<String, Double> priorityMap = new HashMap();

    for (String supportedLanguage : getSupportedLanguages()) {
        if (supportedLanguage.equals(language)) {
            priorityMap.put(supportedLanguage, 0.8);
        } else if (supportedLanguage.equals("en") && !"en".equals(language)) {
            priorityMap.put(supportedLanguage, 0.5);
        } else {
            priorityMap.put(supportedLanguage, 0.1);
        }
    }

    detector.setPriorMap(priorityMap);

    return detector;
}
 
开发者ID:box,项目名称:mojito,代码行数:29,代码来源:LanguageDetectionService.java

示例2: LanguageAnalyzer

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
public LanguageAnalyzer() throws LangDetectException, IOException {
    // solution for loading detector profiles from jar taken from:
    // http://stackoverflow.com/a/15332031

    String dirname = "profiles/";
    Enumeration<URL> en = Detector.class.getClassLoader().getResources(dirname);
    List<String> profiles = new ArrayList<>();
    if (en.hasMoreElements()) {
        URL url = en.nextElement();
        JarURLConnection urlcon = (JarURLConnection) url.openConnection();
        try (JarFile jar = urlcon.getJarFile();) {
            Enumeration<JarEntry> entries = jar.entries();
            while (entries.hasMoreElements()) {
                String entry = entries.nextElement().getName();
                if (entry.startsWith(dirname)) {
                    try (InputStream in = Detector.class.getClassLoader().getResourceAsStream(entry);) {
                        profiles.add(IOUtils.toString(in, Charset.defaultCharset()));
                    }
                }
            }
        }
    }
    if (DetectorFactory.getLangList().isEmpty()) {
        DetectorFactory.loadProfile(profiles);
    }
}
 
开发者ID:exciteproject,项目名称:refext,代码行数:27,代码来源:LanguageAnalyzer.java

示例3: detect

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
/**
 * Wraps the Cybozu lybrary and detects the language over a specified
 * text.
 * 
 * @param text the text to analyze.
 * @return the code of the language detected
 * @throws LangDetectException when the model can't be loaded
 */
public String detect(String text) throws LangDetectException {
    
    
    if (detector == null) {
        // retrieve the language database embedded in the jar
        // load the models inside an array then put them in
        // the library

        String[] models = new String[profiles.length];
        for (int i = 0; i < profiles.length; i++) {
            InputStream s = getClass().getClassLoader().
                    getResourceAsStream("cybozu/" + profiles[i]);
            try {
                models[i] = IOUtils.toString(s, "UTF-8");
            } catch (IOException ex) {
                Logger.getLogger(CybozuLanguageDetectorAnnotator.class.getName()).log(
                        Level.SEVERE, "Cannot load cybozu model " + profiles[i], ex);
            }
        }
        DetectorFactory.loadProfile(Arrays.asList(models));
    }
    detector = DetectorFactory.create();
    detector.append(text);
    return detector.detect();
}
 
开发者ID:ailab-uniud,项目名称:distiller-CORE,代码行数:34,代码来源:CybozuLanguageDetectorAnnotator.java

示例4: detectLanguage

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
@Override
protected List<DetectedLanguage> detectLanguage(String content) {
    List<DetectedLanguage> detectedLanguages = Lists.newArrayList();
    if (StringUtils.isEmpty(content)) {
        return detectedLanguages;
    }
    try {
        Detector detector = DetectorFactory.create();
        detector.append(content);
        ArrayList<Language> languages = detector.getProbabilities();
        for (Language language : languages) {
            detectedLanguages.add(new DetectedLanguage(language.lang, language.prob));
        }
    } catch (LangDetectException e) {
    }
    return detectedLanguages;
}
 
开发者ID:smalldirector,项目名称:solr-multilingual-analyzer,代码行数:18,代码来源:MultiLangDetectLanguageIdentifierUpdateProcessor.java

示例5: detectLanguage

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
private List<DetectedLanguage> detectLanguage(String content) {
	if (content.trim().length() == 0) { // to be consistent with the tika impl?
		log.debug("No input text to detect language from, returning empty list");
		return Collections.emptyList();
	}

	try {
		Detector detector = DetectorFactory.create();
		detector.append(content);
		ArrayList<Language> langlist = detector.getProbabilities();
		ArrayList<DetectedLanguage> solrLangList = new ArrayList<>();
		for (Language l: langlist) 
		{
			if((autoDetectQueryLocales.size() == 0) || (autoDetectQueryLocales.contains(l.lang)))
			{
			    solrLangList.add(new DetectedLanguage(l.lang, l.prob));
			}
		}
		return solrLangList;
	} catch (LangDetectException e) {
		log.debug("Could not determine language, returning empty list: ", e);
		return Collections.emptyList();
	}
}
 
开发者ID:Alfresco,项目名称:community-edition-old,代码行数:25,代码来源:AbstractQParser.java

示例6: detect

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
@Override
public DetectionResult detect(String text) {
  Detector detector;
  try {
    detector = DetectorFactory.create();
  } catch (LangDetectException e) {
    // TODO(skreft): log the reason
    return UNKNOWN;
  }

  detector.append(text);
  List<Language> results = detector.getProbabilities();
  if (!results.isEmpty()) {
    Language bestLang = results.get(0);
    return new DetectionResult(bestLang.lang, bestLang.prob);
  }

  return UNKNOWN;
}
 
开发者ID:deezer,项目名称:weslang,代码行数:20,代码来源:DetectionServiceImplLanguageDetection.java

示例7: loadData

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
public static synchronized void loadData() throws IOException, LangDetectException {
  if (loaded) {
    return;
  }
  loaded = true;
  List<String> profileData = new ArrayList<String>();
  Charset encoding = Charset.forName("UTF-8");
  for (String language : languages) {
    InputStream stream = LangDetectLanguageIdentifierUpdateProcessor.class.getResourceAsStream("langdetect-profiles/" + language);
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream, encoding));
    profileData.add(new String(IOUtils.toCharArray(reader)));
    reader.close();
  }
  DetectorFactory.loadProfile(profileData);
  DetectorFactory.setSeed(0);
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:17,代码来源:LangDetectLanguageIdentifierUpdateProcessorFactory.java

示例8: detectLanguage

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
@Override
protected List<DetectedLanguage> detectLanguage(String content) {
  if (content.trim().length() == 0) { // to be consistent with the tika impl?
    log.debug("No input text to detect language from, returning empty list");
    return Collections.emptyList();
  }
  
  try {
    Detector detector = DetectorFactory.create();
    detector.append(content);
    ArrayList<Language> langlist = detector.getProbabilities();
    ArrayList<DetectedLanguage> solrLangList = new ArrayList<DetectedLanguage>();
    for (Language l: langlist) {
      solrLangList.add(new DetectedLanguage(l.lang, l.prob));
    }
    return solrLangList;
  } catch (LangDetectException e) {
    log.debug("Could not determine language, returning empty list: ", e);
    return Collections.emptyList();
  }
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:22,代码来源:LangDetectLanguageIdentifierUpdateProcessor.java

示例9: SpeechFrame

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
/**
 * Creates new form speechFrame
 */
public SpeechFrame() {
    try {
        //System.out.println(db.toString());
        initComponents();
        txtLog.setEnabled(false);
        cbxEditMode.setSelected(false);
        btnSave.setEnabled(false);
        btnDelete.setEnabled(false);
        setStatus(bundle.getString("TO START, CLICK ON 'NEW LOG'"));
        //System.out.println(Constants.PATH_TO_PROFILES);
        DetectorFactory.loadProfile(Constants.PATH_TO_PROFILES);
    } catch (LangDetectException ex) {
        Logger.getLogger(SpeechFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
}
 
开发者ID:ShahNami,项目名称:Speech,代码行数:19,代码来源:SpeechFrame.java

示例10: initProfiles

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
/**
 * Initialise the language profiles needed by the detector. This
 * initialisation has to be performed only once.
 */
private void initProfiles() {
    PathMatchingResourcePatternResolver resolver = 
            new PathMatchingResourcePatternResolver();
    List<String> profiles = new ArrayList<>();
    DetectorFactory.setSeed(0L);
    try {
        for (Resource rs : resolver.getResources(profilePath)) {
            StringWriter writer = new StringWriter();
            IOUtils.copy(rs.getInputStream(), writer);
            profiles.add(writer.toString());
        }
        DetectorFactory.loadProfile(profiles);
    } catch (IOException | LangDetectException ex) {
        LOGGER.warn(ex);
    }
}
 
开发者ID:Tanaguru,项目名称:Tanaguru,代码行数:21,代码来源:LanguageDetector.java

示例11: detect

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
public String detect(String text) {
	String lang;
	if (!ConstellioStringUtils.isEmpty(text)) {
		try {
			Detector detector = DetectorFactory.create();
			detector.append(text);
			lang = detector.detect();
		} catch (Throwable t) {
			LOGGER.warn("Problem while trying to detect lang for text (0,100): " + StringUtils.substring(text,  0, 100));
			lang = null;
		}
	} else {
		lang = null;
	} 
	return lang;
}
 
开发者ID:BassJel,项目名称:Jouve-Project,代码行数:17,代码来源:LangDetectorUtil.java

示例12: LanguageDetectionService

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
public LanguageDetectionService() {

        if (DetectorFactory.getLangList().isEmpty()) {

            logger.debug("Initialize langdetect with profiles");
            List<String> jsonProfiles = new ArrayList<>();

            Resource[] resources;

            try {
                PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();
                resources = pathMatchingResourcePatternResolver.getResources("profiles/*");
            } catch (IOException ex) {
                throw new RuntimeException("Cannot get the list of resources maching langdetect profiles", ex);
            }

            for (Resource resource : resources) {
                String filename = resource.getFilename();

                logger.debug("Add profile for: {}", filename);
                try {
                    jsonProfiles.add(Resources.toString(resource.getURL(), StandardCharsets.UTF_8));
                } catch (Exception e) {
                    throw new RuntimeException("Cannot load langdetect profile for " + filename, e);
                }
            }

            try {
                logger.debug("Load profiles");
                DetectorFactory.loadProfile(jsonProfiles);
            } catch (LangDetectException lde) {
                throw new RuntimeException("Cannot load langdetect profiles", lde);
            }
        } else {
            logger.debug("langdetect profiles are already initialized");
        }

        logger.debug("Sets langdetect supported languages");
        supportedLanguages = Collections.unmodifiableList(DetectorFactory.getLangList());
    }
 
开发者ID:box,项目名称:mojito,代码行数:41,代码来源:LanguageDetectionService.java

示例13: execute

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
@Override
public void execute(IngestDocument ingestDocument) throws Exception {
    Detector detector = DetectorFactory.create();
    detector.setMaxTextLength(maxLength.bytesAsInt());

    String content = ingestDocument.getFieldValue(field, String.class);
    detector.append(content);
    String language = detector.detect();

    ingestDocument.setFieldValue(targetField, language);
}
 
开发者ID:spinscale,项目名称:elasticsearch-ingest-langdetect,代码行数:12,代码来源:LangDetectProcessor.java

示例14: identifyLanguage

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
@Override
public String identifyLanguage(String html)
        throws IOException
{
    // extracting plain html text
    Document doc = Jsoup.parse(html);
    String text = doc.text();

    // we might have removed everything -> no lang
    if (text.isEmpty()) {
        return UNKNOWN_LANGUAGE;
    }

    try {
        Detector detector = DetectorFactory.create();
        detector.append(text);
        String detectedLang = detector.detect();

        ArrayList<Language> detectedProbabilities = detector.getProbabilities();

        if (detectedProbabilities.get(0).prob > PROBABILITY_THRESHOLD) {
            return detectedLang;
        }
        else {
            return UNKNOWN_LANGUAGE;
        }
    }
    catch (LangDetectException e) {
        return UNKNOWN_LANGUAGE;
    }
}
 
开发者ID:dkpro,项目名称:dkpro-c4corpus,代码行数:32,代码来源:CybozuLanguageIdentifier.java

示例15: analyze

import com.cybozu.labs.langdetect.DetectorFactory; //导入依赖的package包/类
/**
 *
 * @param inputDirectory:
 *            directory containing text files to be analyzed
 * @param outputFile:
 *            file in which the analysis results are written
 * @throws IOException
 * @throws LangDetectException
 */
public String analyze(String string) {
    // List<File> textFiles =
    // FileUtils.listFilesRecursively(inputDirectory);

    // Map<String, Integer> languageMap = new HashMap<String, Integer>();

    try {
        // MapUtils.addCount(languageMap, detector.detect());
        // System.out.println(inputFile);
        Detector detector = DetectorFactory.create();
        detector.append(string);
        return detector.detect();
    } catch (LangDetectException e) {
        // MapUtils.addCount(languageMap, "unknown");
        return "unknown";
    }

    // BufferedWriter bufferedWriter = new BufferedWriter(new
    // FileWriter(outputFile));
    // bufferedWriter.write("number of files files: " + textFiles.size());
    // bufferedWriter.newLine();
    // bufferedWriter.newLine();
    //
    // for (Entry<String, Integer> languageMapEntry :
    // MapUtils.entriesReverselySortedByValues(languageMap)) {
    // bufferedWriter.write(languageMapEntry.getKey() + ": " +
    // languageMapEntry.getValue());
    // bufferedWriter.newLine();
    // }
    // bufferedWriter.close();

}
 
开发者ID:exciteproject,项目名称:refext,代码行数:42,代码来源:LanguageAnalyzer.java


注:本文中的com.cybozu.labs.langdetect.DetectorFactory类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。