gpt4 book ai didi

java - 从字符串数组 java 中的标记/单词构建句子

转载 作者:行者123 更新时间:2023-11-29 09:29:38 26 4
gpt4 key购买 nike

如何连接list<String>中的单词为了回到它作为句子的真实形式

String sentence = "i get money. i love it. i want to buy. something. ";
String[] arrSent = sentence.split("\\. ");

for(int i=0; i<arrSent.length; i++) {
String[] words = arrSent[i].split("\\ ");
for(int j=0; j<words.length; j++ {
listWord.add(words[j]);
}
}

输出是:

i
get
money
i
love
it
i
want
to
buy
something

我只是想把它重建成真实的形式(如句子)

更新!!!

我已经按照你们的建议试过了。但我发现了一种新的困难方法。

我从列表中删除了一个词“love”,并添加到新列表“listWord2”。当我将它重建为句子的真实形式时,.在新句子中是消失

这是代码:

String [] arrays2 = listKata2.toArray(new String[listWord2.size()]);
sentence = Arrays.deepToString(arrays2).replaceAll(",", "");
System.out.println("result : : "+sentence);

输出是:

[i get money i it i want to buy something]

.不见了

我应该拆分 listWord2 吗?又按空间?请给我建议

最佳答案

唯一真正的答案是,一旦你拿走了所有的单词并失去了句子之间的句点,就没有办法把它们带回来——信息永远丢失了,然后就不可能重建原来的结构。

您需要弄清楚您希望如何(并且实际上,如果)保留该信息。一种方法是保留句子数组,只用单词列表而不是句子字符串填充它,如下所示:

List<List<String>> sentences = new List<List<String>>();
String[] arrSent = sentence.split("\\. ");
for (int i = 0; i < arrSent.length; i++)
sentences.add(Arrays.asList(arrSend[i].split("\\ "));

然后你会得到类似的东西

(
( "i", "get", "money" ),
( "i", "love", "it" ),
( "i", "want", "to", "buy" ),
( "something" )
)

由此很容易看出如何重构原文。

另一种选择可能是保留扁平化的单词列表,但在句子终止的位置添加特殊的占位符 - 例如使用 null 值。扫描单词的算法应该知道如何在不崩溃的情况下处理这些占位符,而重建句子的算法将使用这些来添加句号:

String[] arrSent = sentence.split("\\. ");

for(int i=0; i<arrSent.length; i++) {
String[] words = arrSent[i].split("\\ ");
for(int j=0; j<words.length; j++ {
listWord.add(words[j]);
}
listWord.add(null);
}

// Rebuild
StringBuffer output = new StringBuffer();
for (Iterator<String> it = listWord.iterator(); it.hasNext(); ) {
String val = it.next();
String nextword = (output.length() > 0 ? " " : "") + val;
output.append(val == null ? "." : nextword);
}

关于java - 从字符串数组 java 中的标记/单词构建句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26230336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com