簡體   English   中英

如何從Java中的給定標記生成所有可能的句子

[英]How to generate all possible sentence from given tokens in Java

我正在嘗試從給定標記生成所有可能的句子。 這是一個音譯程序。 對於每個音標,我有多種可能性,我想生成所有可能的句子。 例如,如果句子是token1 token2 token3,並且假設token1可以在音譯后以3種方式表示,Token2可以以2種方式表示,token3可以以4種方式表示,那么總的句子數為24。我得到一棵普通樹,然后執行深度優先遍歷以生成所有可能的句子。 問題是當句子變長時,可能性增加,並且出現“ java.lang.OutOfMemoryError:Java堆空間”錯誤。

還有其他方法可以生成所有可能的句子嗎? 在某些情況下,我需要生成數百萬個句子。 請幫忙!!!

您不能像這樣一次全部生成它們。 根據您需要它們的用途,您應該執行所有操作或將它們寫入文件。

另一個想法可能仍然行不通,那就是不存儲每個可能的值,而是存儲一組引用/關系。 您可以使用n-gram和mMrkov鏈使其變得更加復雜,或者僅具有一組引用,甚至僅具有數組索引列表。

因此,除了使用存儲空間作為內存緩沖區之外,您還可以概念化整個集合,而不是foo調用gen的gen,而在生成每個gen之后讓gen調用foo。

[編輯:回顧一下,(我很想看看其他答案),我想澄清一下,函數foo是您正在使用它們的對象,函數gen會生成它們(以防萬一,特別是對於那些母語不是英語的人]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM