我正在尝试用Java编写自己的国际象棋游戏。我已经开始编写类,并且我的高级想法如下:
我有一个与这些领域的计件班:
private String name;
private String color;
Run Code Online (Sandbox Code Playgroud)
最初,我将为每个零件设置一个x和y坐标,但这似乎更像是董事会的财产。带我去...
我有一个具有此类字段的Board类:
Piece[][] myBoard = new Piece[8][8];
Run Code Online (Sandbox Code Playgroud)
我不太确定我应该在哪里/如何跟踪零件的位置。到目前为止,我只有一个二维的Piece对象数组。但是,我认为这将带来一些挑战。例如,假设用户单击了一块,想要移动它。我需要弄清楚该移动是否有效,为此,我需要该棋子所在的当前方块。
如果每个零件都有x和y坐标,那么我将在两个位置(在Board类的2d数组中)和当前零件的x和y坐标处更新游戏的状态。好像不好
有什么建议么?
感谢您的帮助,Mariogs
我正在阅读Harper的SML简介,对参考单元格有点困惑.在p.114,他给出了以下例子:
val r = ref 0
val s = ref 0
val _ = r := 3
val x = !s + !r
val t = r
val _ = t := 5
val y = !s + !r
val z = !t !r
Run Code Online (Sandbox Code Playgroud)
"执行这些绑定后,x绑定到3,y绑定到5,z绑定到10".
这是我对他的代码的描述:
val r = ref 0 //allocates storage for r and sets to 0
val s = ref 0 //allocates storage for s and sets to 0
val _ = r := 3 //sets r …
Run Code Online (Sandbox Code Playgroud) 我刚刚在Ch中遇到过这些.Ullman的ML编程元素中的 5个.他说:
"一个类型变量,例如'a
有两个不同的含义.它可以表示"对于每个类型T,这个对象的实例用类型T代替'a
.这种类型变量称为可推广的."
然后他说:
" 'a
也可以表示我们选择的任何一种类型.但是,在选择了一种类型之后,即使我们重复使用原始类型变量描述其类型的对象,类型也不能改变'a
.这种类型变量称为非泛化. "
有人能给出每种类型的例子吗?我很难绕过这个并理解这种区别似乎很重要(他建立在这些定义的基础上).
谢谢!
我正在尝试使用 JUnit5 创建一些基本的单元测试。我去我的Analyzer.java
班级并获得用于创建测试的弹出窗口。我点击了Create New Test
,将测试库设置为 JUnit5。我检查了一堆方法来生成测试方法并点击确定。
所以现在我有一个AnalyzerTest.java
文件,在顶部我有:
import static org.junit.jupiter.api.Assertions.*;
Run Code Online (Sandbox Code Playgroud)
不幸的是,Assertions
是红色的(这是在 IntelliJ IDEA 中)。当我悬停时,它说“找不到符号断言”。同样,我有:
@org.junit.jupiter.api.Test
Run Code Online (Sandbox Code Playgroud)
在每个测试方法之前以及当我悬停时,我得到“无法解析符号测试”
我只是想创建然后运行一些单元测试,但显然我做错了什么。
有任何想法吗?
谢谢!
我正在将 Pandas 与名为 的 DataFrame 一起使用df
。我正在用它提取新功能,并将生成的两个新数据帧与pd.concat
. 这是我的功能:
def get_processed_df(df, rare_cols, threshold=10):
print("df at start", df.shape)
df = df[pd.notnull(df["FullDescription"]) &
pd.notnull(df["Title"]) &
pd.notnull(df["SalaryNormalized"])]
print("df after filtering nulls", df.shape)
tfidf_desc = get_tfidf_df(df,
"FullDescription",
max_features=100,
prefix="DESC",
tokenize=tokenize)
print("tfidf_desc shape: ", tfidf_desc.shape)
tfidf_title = get_tfidf_df(df,
"Title",
max_features=100,
prefix="TITLE",
tokenize=tokenize)
print("tfidf_title shape: ", tfidf_title.shape)
df.drop("FullDescription", inplace=True, axis=1)
df.drop("Title", inplace=True, axis=1)
final_df = pd.concat([df, tfidf_desc, tfidf_title], axis=1)
print("final df shape: ", final_df.shape)
return final_df
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到以下输出:
df at start (10000, 12)
df after …
Run Code Online (Sandbox Code Playgroud) 我遇到了一个错误setuptools
,应该是在 version 中修复的31.0.0
。我pipenv
用作虚拟环境管理器,所以我有一个Pipfile
和Pipfile.lock
.
我已经指定:
setuptools = "==31.0.0"
Run Code Online (Sandbox Code Playgroud)
在我的 Pipfile
我跑了,pipenv install
但没有看到任何东西出现在我的Pipfile.lock
. 但是,如果我运行:
pipenv run
import setuptools
setuptools.__version__
我回来了:
40.0.0
知道我如何指定31.0.0
以及为什么我当前的方法不正确吗?
谢谢!
我正在将Keras与Tensorflow后端结合使用来构建此问题的模型:https://www.kaggle.com/cfpb/us-consumer-finance-complaints (仅作练习)。
我使用tf.data.Dataset
API 训练我的Keras模型。现在,我有一个Pandas DataFrame,df_testing
其列为complaint
(字符串)和label
(也是字符串)。我想对这些新样本进行预测。我创建一个tf.data.Dataset
对象,执行预处理,创建一个迭代器,并在模型上调用预测:
data = df_testing["complaint"].values
labels = df_testing["label"].values
dataset = tf.data.Dataset.from_tensor_slices((data))
dataset = dataset.map(lambda x: ({'reviews': x}))
dataset = dataset.batch(self.batch_size).repeat()
dataset = dataset.map(lambda x: self.preprocess_text(x, self.data_table))
dataset = dataset.map(lambda x: x['reviews'])
dataset = dataset.make_initializable_iterator()
Run Code Online (Sandbox Code Playgroud)
我的训练使用了tf.data.Dataset
每个元素的形式,({'reviews': "movie was great"}, "positive")
因此在这里我将其模仿为预测。另外,我的预处理只是将我的字符串变成Tensor
整数a。
当我打电话时:
preds = model.predict(dataset)
Run Code Online (Sandbox Code Playgroud)
但有人告诉我我的predict
电话失败了:
ValueError: When using iterators as input to a model, you should specify the …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Python中使用argparse库.我想让用户做类似的事情:
python my_script.py csv_name.csv [--dryrun]
Run Code Online (Sandbox Code Playgroud)
where --dryrun
是可选参数.
然后我让用户输入API密钥和密钥.当我运行我的代码时,我过去输入API和密钥,然后我得到:
usage: my_script.py [-h] csv dryrun
salesforceImporter.py: error: too few arguments
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
def main():
api_key = getpass.getpass(prompt='Enter API Key: ')
secret_key = getpass.getpass(prompt='Enter Secret Key: ')
parser = argparse.ArgumentParser()
parser.add_argument("csv")
parser.add_argument("dryrun")
args = parser.parse_args()
validate_csv_name(args.csv)
is_dry_run = args.dryrun == '--dryrun'
Run Code Online (Sandbox Code Playgroud)
知道我哪里错了吗?
谢谢!
我正在使用 Keras 执行多标签分类任务(Kaggle 上的有毒评论文本分类)。
我正在使用Tokenizer
该类进行一些预处理,如下所示:
tokenizer = Tokenizer(num_words=10000)
tokenizer.fit_on_texts(train_sentences)
train_sentences_tokenized = tokenizer.texts_to_sequences(train_sentences)
max_len = 250
X_train = pad_sequences(train_sentences_tokenized, maxlen=max_len)
Run Code Online (Sandbox Code Playgroud)
这是一个好的开始,但我还没有去除停用词、词干词等。对于停用词去除,我在上述之前做了以下工作:
def filter_stop_words(train_sentences, stop_words):
for i, sentence in enumerate(train_sentences):
new_sent = [word for word in sentence.split() if word not in stop_words]
train_sentences[i] = ' '.join(new_sent)
return train_sentences
stop_words = set(stopwords.words("english"))
train_sentences = filter_stop_words(train_sentences, stop_words)
Run Code Online (Sandbox Code Playgroud)
在 Keras 中不应该有更简单的方法来做到这一点吗?希望也有词干能力,但文档没有表明有:
https://keras.io/preprocessing/text/
任何有关停用词删除和词干提取最佳实践的帮助都会很棒!
谢谢!
我有一个 Python 列表,my_list
看起来像这样["test1", "test2", "test3"]
。我只是想将它转储到一个不带引号的 YAML 文件中。所以所需的输出是:
test_1
test_2
test_3
Run Code Online (Sandbox Code Playgroud)
我试过了:
import yaml
with open("my_yaml.yaml", "w") as f:
yaml.safe_dump(my_list, f)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这包括一行中的所有 3 个元素,并且引用了它们:
'test_1', 'test_2', 'test_3'
如何修改以获得所需的输出?
python ×6
java ×2
keras ×2
sml ×2
argparse ×1
dataframe ×1
oop ×1
pandas ×1
pipenv ×1
setuptools ×1
tensorflow ×1
unit-testing ×1
yaml ×1