自然语言处理

时间:2010-09-25 06:06:28

标签: java php nlp

我在文件中有数千个句子。我想找到合适/有用的英语单词。是否可以使用自然语言处理?

示例句子:

〜@ ^。^ @〜tic但有时世界着名的tac Zorooooooooooo

我只想提取像

这样的英文单词 世界名人

任何建议如何实现这一目标。在此先感谢

5 个答案:

答案 0 :(得分:5)

您可以使用WordNet API查找字词。

答案 1 :(得分:1)

您需要编译一个停用词列表(一旦您不想在搜索中登记),之后您可以使用该停用词列表过滤搜索。有关详细信息,您应该考虑查看这些维基百科文章

  1. http://en.wikipedia.org/wiki/Stop_words
  2. http://en.wikipedia.org/wiki/Natural_language_processing

答案 2 :(得分:1)

您可以使用使用字符n-gram统计信息的语言猜测器。通常只需要少量材料(用于训练和分类)。文献和实施的链接可以在这里找到:

http://odur.let.rug.nl/~vannoord/TextCat/

方法很简单:

  1. 为每种语言收集少量文字。
  2. 提取并计算文本中出现的1克和5克。
  3. 按频率排序这些n-gram,取最好的,比如说300.这形成了语言的指纹。
  4. 如果要对文本或句子进行分类,请应用步骤2和3,并将生成的指纹与训练期间收集的指纹进行比较。根据n-gram的等级差异计算得分,得分最低的语言获胜。

答案 3 :(得分:1)

您可以使用Python来实现这一目标。您正在寻找的是过滤英语单词。

  1. 首先将句子标记化。 (将句子分成单词)

  2. 使用Python langdetect库查看它是否是英文单词

  3. 根据langdetect输出过滤所有英文单词。

  4. 如何安装库:

    $ sudo pip install langdetect
    Supported Python versions 2.6, 2.7, 3.x.
    
    >>> from langdetect import detect
    
    >>> detect("War doesn't show who's right, just who's left.")
    'en'
    >>> detect("Ein, zwei, drei, vier")
    'de'
    

    https://pypi.python.org/pypi/langdetect

    P.S。:不要期望这个能够正常工作:

    >>> detect("today is a good day")
    'so'
    >>> detect("today is a good day.")
    'so'
    >>> detect("la vita e bella!")
    'it'
    >>> detect("khoobi? khoshi?")
    'so'
    >>> detect("wow")
    'pl'
    >>> detect("what a day")
    'en'
    >>> detect("yay!")
    'so'
    

答案 4 :(得分:0)

package com;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.SpeechResult;
import edu.cmu.sphinx.api.StreamSpeechRecognizer;

public class TranscriberDemo {       

    public static void main(String[] args) throws Exception {

        Configuration configuration = new Configuration();

        configuration.setAcousticModelPath("en-us");
        configuration.setDictionaryPath("Sample Dict File_2.dic");
        configuration.setLanguageModelPath("Sample Language Modeller_2.lm");

        //configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");
        //configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");
        //configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/language/en-us.lm.dmp");

    StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(configuration);
    InputStream stream = new FileInputStream(new File("test.wav"));

        recognizer.startRecognition(stream);
    SpeechResult result;
        while ((result = recognizer.getResult()) != null) {
        System.out.format("Hypothesis: %s\n", result.getHypothesis());
    }
    recognizer.stopRecognition();
    }
}