gpt4 book ai didi

java - 访问类的字段和方法以检索具有某些值的字段

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:09 24 4
gpt4 key购买 nike

我正在尝试访问一个包含 ID、名称、文本和单词列表的文档类。我尝试将我拥有的文档 ID 与 ID 进行比较,找到后获取附加到该 ID 的单词列表,以找到确切的单词并返回其频率。非常感谢任何帮助。

public class Doc {
private int documentID;
private static Doc docInstance = null;
private String documentText;
private ArrayList<String> listOfTokens;
static int docCount = 0;
int tokFreq = 0;

public Doc() {
documentID = 0;
listOfTokens = new ArrayList<String>();
tokFreq = 0;
docCount++;
}

public static Doc getDocInstance() {
if (docInstance == null) {
docInstance = new Doc();
}
return docInstance;
}

public ArrayList<String> getListOfTokens() {
return listOfTokens;
}

public void setDocumentID(int x){
if (getDocumentID() != x)
this.documentID = x;
}
}

我正在尝试这个

public static void createDocumentVector(TreeMap<Integer,Integer> 
documentVector, TreeMap<String, ArrayList<Integer>>qm, int N)
{
int eachDoc = 0;

Collection<String> allKeys = qm.keySet();
ArrayList<Integer> l1 = new ArrayList<Integer>();
boolean addedTerm = false;

/**
Obtain an Iterator for Collection
*/
Iterator<String> itr = allKeys.iterator();
String key;
int termFrequency = 0;
int documentFrequency = 0;

/**
Iterate through TreeMap values iterator
*/
while(itr.hasNext())
{
key = (String)itr.next();
Integer LL = 0;
l1 = qm.get(key); // Returns value of that key
for (int k = 0; k < l1.size(); k++)
{
LL = l1.get(k);
Doc doc = new Doc();
doc.getDocInstance().setDocumentID(LL);
int size = doc.getListOfTokens().size();
String[] docIdTokens = doc.getListOfTokens().toArray(new String[size]);
for (String s : docIdTokens){
if(s.equalsIgnoreCase(key)){
termFrequency++;
}
}

documentFrequency = l1.size();
eachDoc = getTFIDF(termFrequency, documentFrequency, N);
documentVector.put(eachDoc, LL);
}


}
}

它没有完全运行并在调试时给出找不到源的信息。我正在考虑将 Doc 类更改为:

public class Doc<ListOfTokens> {

private static int documentID;
private static Doc docInstance = null;
private String documentName;
private String documentText;
private HashMap<String, Integer> ListOfTokens = new HashMap<String, Integer>();
private TreeMap<Integer, ListOfTokens> documentMap = new TreeMap<Integer, ListOfTokens>();
int tokFreq = 0;
static int docCount = 0;
-----
}

但我认为这会有点复杂。所以任何建议都会有很大的帮助。

最佳答案

您不需要对 Doc 类的 documentID 属性使用关键字 static。由于您预计会有多个 doc 对象,并且每个对象都需要有自己的 documentID 值,因此您需要使用 documentID 作为非静态字段。

关于java - 访问类的字段和方法以检索具有某些值的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257099/

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