NLP:将带标签的单词排列成正确的英语句子?

标签 nlp

假设我有一句话:

"you hello how are ?"

我得到的输出:

you_PRP hello_VBP how_WRB are_VBP

将措辞排列成正确的英语句子的最佳方式是什么,例如:Hello how are you ?

我对整个自然语言处理很陌生,所以我不熟悉很多术语。 我能想到的唯一方法是 - 使用语句来确定: 副词 - 动词 - 名词 然后据此重新排列它们?

注意:假设我正在尝试形成正确的问题,因此忽略确定它是问题还是陈述。

最佳答案

您应该查看language models 。例如,二元语言模型将根据句子中的两个单词序列为您提供观察该句子的概率。基于文本语料库,它将了解到“how are”比“are how”出现的概率更高。如果将一个句子中所有这些两个单词序列的概率相乘,您将得到该句子的概率。

换句话说,这就是解决问题的方法:

  1. 查找语料库(可以是简单的文本语料库,也可以是带有词性标签的语料库)。
  2. 从该语料库中学习语言模型。您可以简单地根据单词或根据单词及其词性标记来执行此操作,如您的示例中所示。
  3. 生成目标词的所有可能序列。
  4. 使用语言模型计算所有这些序列的概率。
  5. 选择概率最高的序列。

如果您使用 Python,nltk 有一个 api for training and using language models 。否则,KenLM是一个流行的语言建模包。

关于NLP:将带标签的单词排列成正确的英语句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30429174/

相关文章:

nlp - Wordnet Synset 偏移量?如何比较单词

nlp - 当使用点积相似度进行训练时,为什么在 Word2Vec 中使用余弦相似度

nlp - OpenAI API 和 GPT-3,不清楚如何访问或设置学习/开发?

python - 高效编辑距离

python - 将 Python 字符串传递给 Mallet 以进行主题建模

algorithm - Google 的 In Quotes 如何运作?

machine-learning - 如何在 NER 模型上设置空格分词器?

python - 词嵌入维度值实际上代表什么?

python - Python 中的浮点值与记录值

python - 使用 google_ngram_downloader 阅读谷歌 ngram