编程语言
首页 > 编程语言> > GraphPoet翻译

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,” 和 “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类继承的方法

equalsgetClasshashCodenotifyAlltoStringwaitwaitwait

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,语料库,单词,w2,w1,corpus
来源: https://blog.csdn.net/tsien88/article/details/118555286