GraphPoet翻译

2021/7/7 20:07:34

本文主要是介绍GraphPoet翻译,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Class GraphPoet

java.lang.Object
  poet.GraphPoet


public class GraphPoet
extends Object

一个基于图的诗歌派生器。

GraphPoet由文本语料库初始化,它用这个语料库来派生一个单词亲和图word affinity graph。单词words用图中的顶点vertices表示。单词是不包括空格和换行符的不区分大小写的非空字符串,它们在语料库中由空格、换行符或EOF分隔。图中的各边表示邻接的数量:从w1到w2的边的权重定义为语料库中“w2”紧跟在“w1”后面的次数。

举个栗子,给定这个语料库:

  Hello, HELLO, hello, goodye!

生成的图应该包含两条边:

  • (“hello,”) -> (“hello,”) 权重为2
  • (“hello,”) -> (“goodbye!”) 权重为1

两个点表示为不区分大小写的 “hello,” 和 “goodbye!”

给定输入字符串,GraphPoet通过尝试在输入中的每对相邻单词之间插入一个桥接词bridge word来生成一首诗。单词由语料库中的单词定义和分隔。输入词“w1”和“w2”之间的桥接词“b”使得w1->b->w2成为一条包含两条边的路径,满足在这个诗人(GraphPoet)的单词亲和图中的所有从w1到w2的包括两条边路径中,具有最大权重。如果没有这样的路径,则不会插入桥接词。在输出的诗句中,输入词保留了原来的大小写,而桥词则是小写。诗中每个字之间的空白是一个空格,开头和结尾没有空格。

再举个栗子,给定这个语料库:

  This is a test of the Mugar Omni Theater sound system.

对于这个输入:

  Test the system.

输出的诗句将会是:

  Test of the system.

说明:这是一个有要求的ADT类,并且你不能弱化要求的规约specifications。但是,你可以强化规约,也可以添加额外方法。你必须在你的属性rep中使用Graph类,但是除此之外这个类的实现取决于你。

Constructor Summary

GraphPoet (File corpus)
使用从corpus生成的图创建一个新的诗人。

Method Summary

String poem (String input)
生成一首诗。

从java.lang.Object类继承的方法

equals, getClass, hashCode, notifyAll, toString, wait, wait, wait

Constructor Detail

GRAPHPOET

public GraphPoet(File corpus) throws IOException

使用从corpus生成的图创建一个新的诗人。

parameters

corpus - 生成诗人的单词亲和图的文本文件

Throws

IOException - 如果无法找到或无法读corpus文件

Method Detail

POEM

public String poem(String input)
派生一首诗。

Parameters

input - 派生一首诗的源字符串

Returns

poem - (如上文所说)


声明:翻译自MIT6.031的 GraphPoet(Problem Set 2: Poetic Walks)仅供个人学习
个人水平有限,如有疏漏和错误恳请批评指正



这篇关于GraphPoet翻译的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程