我在网上见过很多Lorem Ipsum生成器,但不仅如此,还有“bacon ispum”、“space ispum”等。那么,这些生成器是如何生成文本的呢?它们是由人工智能驱动的吗?
“Lorem Ipsum”生成器如何工作?
Lorem ipsum 生成器通常不使用任何被视为 AI 的东西。通常他们只是存储大量文本并从中随机选择部分——它们非常简单。主要目标是生成填充空间但不会分散布局和设计问题的“无意义”文本。它的变体通常只是为了好玩,并且与原版一样,大多是简单的生成器,它们从核心数据源中随机选择文本字符串,而不使用任何 AI 技术。
可以使用自然语言处理(NLP)中的数据结构构建更复杂的随机文本生成器。
一种流行且易于编码的数据结构是N-grams ,它存储给定单词 1 到 N-1的第 N个单词的频率/概率。例如,二元组结构可以告诉您所有可能出现在“鱼”之后的单词。例如"fish" => ["food" => 0.2, "swims" => 0.3, "and" => 0.4, "scale" => 0.1]
,要使用该结构生成文本,请使用随机数生成器根据查找第 N个单词的频率来选择一个单词,然后移动列表正在考虑和重复的单词。
一种更新的文本生成 NLP 模型是循环神经网络 (RNN),它具有多种设计。现在流行的是 LSTM 网络,它们能够进行一些非常复杂的生成,只要它们用足够长的数据训练足够长的时间。Andrej Karpathy的博客The Unreasonable Effectiveness of Recurrent Neural Networks有很多非常有趣的使用 RNN 进行文本生成的例子。在实践中,这类似于 n-gram:使用 RNN 建议到目前为止给定单词的下一个单词的概率,随机选择一个,然后将生成的单词反馈到 RNN 并重复。
如果您想生成更多,我想您可以将字符串转换为列表,然后您可以从列表中随机选择任意数量的单词。
使用 Python
import numpy as np
lorem = "lLorem ipsum dolor sit amet, consectetur adipiscing elit. ".split()
number_of_words_needed = 20
new_text = []
for i in range(number_of_words_needed):
new_text.append(lorem[np.random.randint(len(lorem))])
print(new_text)
ipsum ['sit', 'dolor', 'elit.', 'sit', 'sit', 'sit', 'elit.', 'dolor', 'amet,', 'ipsum', 'amet,', 'ipsum'、'dolor'、'Lorem'、'Lorem'、'adipiscing'、'sit'、'elit.'、'consectetur'、'adipiscing']
以供参考
资料来源:“与流行的看法相反,Lorem Ipsum 不仅仅是随机文本。它起源于公元前 45 年的一部古典拉丁文学作品,已有 2000 多年的历史。弗吉尼亚州汉普登 - 悉尼学院的拉丁语教授理查德麦克林托克,从 Lorem Ipsum 段落中查找了一个比较晦涩的拉丁词 consectetur,并通过经典文献中对该词的引用,发现了无可置疑的来源。Lorem Ipsum 来自“”的第1.10.32和1.10.33节de Finibus Bonorum et Malorum”(善与恶的极端),西塞罗,写于公元前 45 年。这本书是关于伦理学理论的专着,在文艺复兴时期非常流行。Lorem Ipsum 的第一行,“Lorem ipsum dolor sat amet..”,来自第 1.10.32 节中的一行。
自 1500 年代以来使用的标准 Lorem Ipsum 块在下面复制给感兴趣的人。西塞罗的“de Finibus Bonorum et Malorum”中的第 1.10.32 和 1.10.33 节也按原样复制,并附有 H. Rackham 1914 年翻译的英文版本。