This year we have built a set of challenges and tutorials to better help new members ease into the workflow of Snowbots.
These challenges are here to get us all up to speed on each others' abilities, experience, and what we still need to learn. Basic assumptions made are that you can clear the first challenge on your own by looking things up online. Otherwise, we do not expect you to have much experience in API design or unit testing coming in, though if you do know all this, great! Regardless of your background, we are here to improve and learn from each other as a group. Debate and questions, especially disagreeing with us if something looks strange, are welcome.
1. By the first meeting (Sept. 12): Had a go at completing Challenge 1
2. During first meeting go over Challenges, ask questions, get help
3. Have Finn check both Challenges before signing up to your project
For challenge 1, we thought it we would be boring to just have you solve FizzBuzz or some other simple problem, so to get you comfortable working with existing code, here are a couple of solutions to FizzBuzz, in C++ and Python. We want you to run these and see what they do, then extend them.
Below are the FizzBuzz challenges in Python and C++ for you to choose from. Pick your choice of language and read through it. The source code can also be downloaded from git by clicking the titles. Your exact tasks will be described underneath the code samples.
import sys
for n in range(1,101):
fizzbuzz = False
if n % 3 == 0:
fizzbuzz = True
sys.stdout.write('fizz')
if n % 5 == 0:
fizzbuzz = True
sys.stdout.write('buzz')
if not fizzbuzz:
sys.stdout.write(str(n))
sys.stdout.write('\n')
#include <iostream>
#include <cstdlib>
int main(){
for(int i = 0; i < 101; ++i){
bool fizzbuzz = false;
if(i % 3 == 0){
fizzbuzz = true;
std::cout << "fizz";
}
if(i % 5 == 0){
fizzbuzz = true;
std::cout << "buzz";
}
if(!fizzbuzz){
std::cout << i;
}
std::cout << '\n';
}
return EXIT_SUCCESS;
}
A good reference for C++ can be found here: http://www.cplusplus.com/. It has up-to-date, standards-compliant information, and is my go-to 'reference book'. It also has a tutorial, though I'm sure you can find one if that's what you're looking for.
Python has some of the best documentation I have ever seen: https://www.python.org/doc/. This covers from the basics to the deepest technicalities of the language and all its built-in modules.
Here are a few methods that are commonly used to compile code with
ROS catkin is a set of macros built into ROS for managing code. This is the primary tool we use for code compilation in Snowbots.
Here are the standard c and c++ compilers you can find in linux systems. Either click on the link or try $man g++ in the terminal. ($man is a very helpful command in linux)
The link is the manual page to python for terminals. Look there to see how you can run your .py scripts
Interesting libraries/systems we may sometimes use, so you can look up what's in store, and more importantly learn how to use these as we work throughout the year:
So, you've picked either C++ or Python, and you got it to compile/run. Now what? We want you to extend its behaviour.
The resulting program (PrimeBuzz) should perform exactly as it did originally, except when it encounters a prime number. Then, it should print “prime”, and only prime, except in the case where it would originally have printed “buzz” or "fizz" . Then, it should prepend “prime” to the original output. (eg. 3 originally was "fizz", thus it should now print "prime")
3->prime
4->4
23->prime
7->prime
15->FizzBuzz
11->prime
21->fizz
8->8
Now that you have your original code working, your next challenge is as follows:
1. Get ROS working
2. Get comfortable making nodes, testing nodes, reading the documentation, etc...
3. Make PrimeBuzz work as a ROS node
To do this, we suggest you read some of the ROS documentation. To finish the challenge, you will want to know about running nodes, creating Publishers and Subscribers (C++/Python), creating Service providers (C++/Python), and the helpful ROS command-line tools rostopic and rosservice.
To clarify exactly what "make PrimeBuzz work as a ROS node" means, we mean that your solution to Challenge 1 should start as a ROS node, emit its output as ROS messages (for Python) or provide a ROS service that returns the correct output (for C++, due to issues where messages published immediately on startup getting lost), and then shut down (or wait until it is killed, using Ctrl^C).
We will be looking at your node's output in a separate terminal using either rosservice or rostopic, and will expect to see some form of the FizzBuzzPrime output. Creative solutions different from those we have described here are welcome.
Don't worry about creating a catkin workspace, the vagrant up script does it for you.
Any modifications you make to Snowflake/src
will be automatically synced to your Vagrant VM's ~/src
folder (and vice versa). The idea is that you can then edit in your main environment, and only use the Vagrant VM to compile and run your code. For more technical details as to what exactly makes this happen, take a look in Snowlfake/cookbooks/snowbots/recipes/defaults.rb
, and take a look at the Vagrant documentation.
Our repository currently contains a single package called tutorial, which contains two nodes (creatively named cpp and py) that are Finn's attempts at solving Challenge 2. To start, you can try running these nodes and checking their output using rosservice and rostopic. cpp is supposed to provide a service called "prime_request", and py publishes messages on a topic called "primes".
For ROS to be aware of any new nodes, messages or services you write, you need to run $ source devel/setup.sh
in your VM's home folder, once in each terminal you have open.
You need to have X forwarding enabled for any GUI based things to show up. Instead of typing vagrant ssh type: ssh -X -p 2222<EMAIL_ADDRESS>Getting Started with terminal
Github's Instructions to Setting Up Git
We recommend using the Vagrant environment we provide on the Git repository for building. Instructions to setting up the Vagrant environment.
For the hardy, here is a link to the ROS website where you can get ROS working some other way: The Version Snowbots uses is Indigo.
So, your PrimeBuzz works on the command-line, but what about as a ROS node? Your challenge is to make it run under ROS as a node, with exactly how this happens left to your discretion. Style points are involved, as the point of this is to help us get to know each other as programmers, and to see how we cope with the kind of things we will have to do throughout the year.
The main thing we have in mind is that your design should be reasonably flexible, readable and future-proof. If you do not feel like you could come back to your code in a month and fix some obscure bug, either you can try refactoring it so it is more readable, or if there's something strange or unintuitive you need to do for it to work, commenting your rationale on the line above said thing can work too.
If you have a question or get stuck, come find me [Finn] at the first session and we can go from there. This challenge is designed to extend into at least the second session, and is a catalyst for open debate, not a test.
Bonus points for unit tests are still a thing for challenge 2 – try having a look at http://wiki.ros.org/rostest. We hope to keep this practice going for the entire project. If you remember CPSC 110 too well, then maybe the later stages of this project can help you see unit/integration/regression tests for how helpful they really are. Not having them can cause several types of pain in longer-term projects. (ask me [Finn] for examples if you like)
Once you are done, please bring it to the next meeting you attend, or mail it in to us at our email!


- BACK - Static variable in class resources.strings.TerminalConstants
-
The Main exit title.
- backgroundImageView - Variable in class presentation.controller.view.LoginViewController
-
- backtracking(int, int, int, ColorRow) - Method in class domain.model.player.computer.FiveGuessComputer
-
Generates all the possible combinations with the number of pegs and colors given
- BLACK - Static variable in class presentation.utils.ColorUtils
-
- BLACK_DARK - Static variable in class presentation.utils.ColorUtils
-
- blacks - Variable in class presentation.controller.TerminalController.Turn
-
- BLUE - Static variable in class presentation.utils.ColorUtils
-
- BLUE_DARK - Static variable in class presentation.utils.ColorUtils
-
- Board(String) - Constructor for class presentation.controller.TerminalController.Board
-
Instantiates a new Board.
- BoardController(TerminalController.Board) - Constructor for class presentation.controller.TerminalController.BoardController
-
Instantiates a new Board controller.
- boardPane - Variable in class presentation.controller.view.NebulaViewController
-
- BoardPane - Class in presentation.view
-
The Board Pane
- BoardPane() - Constructor for class presentation.view.BoardPane
-
Loads the BoardPane to nebula.
- BoardPane.TurnLabel - Class in presentation.view
-
- breakerGuess(int, int) - Method in class domain.model.player.computer.DummyComputer
-
Generates the next attempt.
- breakerGuess(int, int) - Method in class domain.model.player.computer.FiveGuessComputer
-
Evaluates which is the combination that will eliminate more possible combinations.
- breakerGuess(int, int) - Method in class domain.model.player.computer.GeneticComputer
-
Compute the next guess.
- breakerGuess(int, int) - Method in class domain.model.player.Player
-
Receive the breaker's guess
- breakerGuess(int, int) - Method in class domain.model.player.UserPlayer
-
The Breaker user player introduces a guess
- breakerInitialGuess(int, int) - Method in class domain.model.player.computer.FiveGuessComputer
-
Choose a first combination to be tried
- breakerInitialGuess(int, int) - Method in class domain.model.player.computer.GeneticComputer
-
- BROWN - Static variable in class presentation.utils.ColorUtils
-
- BROWN_DARK - Static variable in class presentation.utils.ColorUtils
-
- buildScene(Class, Stage, Parent, double, double) - Static method in class presentation.utils.ComponentUtils
-
Builds a scene with the given parameters.
- buttonPlaceholder - Variable in class presentation.controller.view.LoginViewController
-


Shortest path
问题描述 :
There are N cities (marked by 1, 2, …, N) and M bidirectional roads in the kingdom. There may be several roads between any two cities, but there is not any road connects the same city.
Your task is to find a shortest path from city 1 to city N, and the lengths of the edges you passed by must be strictly in increasing order.
Your task is to find a shortest path from city 1 to city N, and the lengths of the edges you passed by must be strictly in increasing order.
输入:
There is an integer T (1 <= T <= 500) in the first line, indicates that there are T test cases in total.
For each test case, there are two integers N (2 <= N <= 10000) and M (1 <= M <= 50000), which have the same meaning as above. Then there are M lines, and there are three integers x (1 <= x <= N), y (1 <= y <= N), and z (1 <= z <= 10000000) in each line, indicate there is a bidirectional road between city x and city y.
There are at most ten test cases that satisfy that N > 200 or M > 1000.
For each test case, there are two integers N (2 <= N <= 10000) and M (1 <= M <= 50000), which have the same meaning as above. Then there are M lines, and there are three integers x (1 <= x <= N), y (1 <= y <= N), and z (1 <= z <= 10000000) in each line, indicate there is a bidirectional road between city x and city y.
There are at most ten test cases that satisfy that N > 200 or M > 1000.
输出:
There is an integer T (1 <= T <= 500) in the first line, indicates that there are T test cases in total.
For each test case, there are two integers N (2 <= N <= 10000) and M (1 <= M <= 50000), which have the same meaning as above. Then there are M lines, and there are three integers x (1 <= x <= N), y (1 <= y <= N), and z (1 <= z <= 10000000) in each line, indicate there is a bidirectional road between city x and city y.
There are at most ten test cases that satisfy that N > 200 or M > 1000.
For each test case, there are two integers N (2 <= N <= 10000) and M (1 <= M <= 50000), which have the same meaning as above. Then there are M lines, and there are three integers x (1 <= x <= N), y (1 <= y <= N), and z (1 <= z <= 10000000) in each line, indicate there is a bidirectional road between city x and city y.
There are at most ten test cases that satisfy that N > 200 or M > 1000.
样例输入:
4 4 6 1 2 1 1 2 2 2 3 3 2 3 1 3 4 2 4 3 6 3 2 1 2 1 2 3 1 3 1 1 2 1 2 2 2 1 1 1 2 2
样例输出:
10 No answer No answer 1
题意：求最短路，要求每一次走的路都比上一次的长。
思路：把所有边排序，然后从短到长的顺序找最短路，相同长度的同时考虑。。
机组数据：
3
5 5
1 2 1
2 3 2
3 4 3
1 4 4
4 5 4
5 5
1 2 2
2 3 3
3 4 4
1 4 5
4 5 5
5 5
1 2 2
2 3 3
3 4 4
1 4 5
4 5 6
#include <cstdio> #include <queue> #include <cstring> #include <algorithm> #include <stack> #include <iostream> using namespace std; #define LL long long const int N = 10009; const int M = 100009; const LL INF = 0x3f3f3f3f3f3f3f3f; struct load{ int f,t,dis; bool operator<(const load t)const{ return dis<t.dis; } } ld[M]; int n,m; int fa[N]; LL dis[N]; int v[N]; LL vdis[N]; void oper(int st,int len) { int cnt= 0,l,r,d; for(int i=0;i<len;i++) { l = ld[i+st].f,r= ld[st+i].t,d = ld[st+i].dis; if(fa[l]&&dis[r]>d+dis[l]) { v[cnt] = r; vdis[cnt]= d+dis[l]; cnt++; } if(fa[r]&&dis[l]>d+dis[r]) { v[cnt] = l; vdis[cnt] = d+dis[r]; cnt++; } } for(int i=0;i<cnt;i++) { dis[v[i]] = min(dis[v[i]],vdis[i]); fa[v[i]] = 1; } } void solve() { memset(fa,0,sizeof(fa)); for(int i=0;i<=n;i++) dis[i] = INF; dis[1] = 0; fa[1] = 1; for(int i=0;i<m;) { int j; for(j=i+1;j<m;j++) { if(ld[j].dis!=ld[i].dis) break; } oper(i,j-i); i = j; } if(dis[n]!=INF) cout<<dis[n]<<endl; else printf("No answer\n"); } int main() { freopen("in.txt","r",stdin); int cas; scanf("%d",&cas); while(cas--) { scanf("%d%d",&n,&m); for(int i=0;i<m;i++) scanf("%d%d%d",&ld[i].f,&ld[i].t,&ld[i].dis); sort(ld,ld+m); solve(); } return 0; }
版权声明：本文为博主原创文章，未经博主允许不得转载。
参考：http://blog.csdn.net/binwin20/article/details/8296416
(adsbygoogle = window.adsbygoogle || []).push({});
据你的话说萧狗是很多屎对吧，画中萧狗怎么不画他吃屎呢？
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿
你的故事我很喜欢，也很羡慕男主和女主的幸福，希望他们每个人都能幸福，嘿嘿嘿


xCite creates dump files containing all instances of certain templates on Wikipedia.
The templates are kept exactly as they appear in the wikisource. Special character newlines, etc.. use standard JSON encoding. Spaces are maintained. Templates with redirect names are included eg. {{cite book}} and {{citebook}}.
xCite uses the Toolforge grid with concurrent workers allowing for very fast parsing. If a worker fails mid-stream due to grid instability it will restart no data is lost. Pages are retrieved via the API (the most current live database) there is no lag from other dumps or the replication server.
Dumps are generated weekly. Faster times are possible if requested.
4 cycles for each language are kept online.
JSON with one object containing one template per line.
Example line from en.wikipedia.org.magazine.json:
{"a":"100,000 Cobbers","c":"{{cite magazine|title= Soldiers Make New Film |url=http://nla.gov.au/nla.obj-722411219 |page=10|date=October 11, 1941|magazine=Pix}}"}
"a" = article name
"c" = citation
The file is semi-sorted: cites from an individual article are grouped in contiguous lines. Article names are unsorted.
Web interface: https://tools-static.wmflabs.org/botwikiawk/xcite/xcite.html
Direct access: https://tools-static.wmflabs.org/botwikiawk/xcite/
Log file: https://tools-static.wmflabs.org/botwikiawk/xcite/log.txt
The log.txt can be accessed programmatically as an index to determine what is available. Entries are listed newest to oldest. It is recommended to use log.txt when determining completed dumps because incomplete files might be in the directory during creation.


Choose from a list to learn more about a particular amarillo-hopped beer.
Here is some more information about this product that is only revealed once clicked on.
Though not as well-known as the Mosaic or Cascade varietals, Amarillo hops are essential for lending citrusy notes to beer. They are most widely used in pale ales and India pale ales.
Not sure which beer you want to explore? Let us pick one for you. You can click the


Five accused in South Surrey torched-SUV killing ordered back to court in January
Bhavkiran Dhesi died in August 2017; five members of the same family are charged in connection with her death
by Tracy HolmesThe five people accused in the August 2017 death of Surrey teen Bhavkiran Dhesi made brief appearances in Surrey Provincial Court Wednesday morning – though not in person.
All five – Harjot Singh Deo, Inderdeep Kaur Deo, Manjit Kaur Deo, Gurvinder Singh Deo and Talwinder Khun Khun – were represented by counsel for the proceedings, which took place in Court 104. The matter was adjourned until Jan. 20, 2020.
In requesting the adjournment, Crown Mike Fortino cited ongoing disclosure.
There is a publication ban on any evidence that has been presented. Charges against the accused range from second-degree murder to interference with a dead body. All five have been released on bail, following proceedings in B.C. Supreme Court; Harjot Deo was the most recent to be granted release.
READ MORE: Man charged in Surrey’s torched-SUV murder case gets bail hearing
He was arrested in May at Vancouver Airport in connection with Dhesi’s death. The 19-year-old’s body was found in a torched SUV in South Surrey in the early morning hours of Aug. 2, 2017.
Police have said Dhesi and Deo had been in a romantic relationship, and that Dhesi had “recently recovered from a kidney transplant.”
The four other accused are Harjot Deo’s mother, sister, brother and cousin.


About
Writing is a vital skill. Unfortunately, it is difficult to apply some of the best pedagogical practices identified in other fields to writing[1].
In particular, writing is often not conducive to "deliberate practice" (DP), which is seen in the skill development literature as a particularly
efficient path to mastery in domains as diverse as chess, athletics, and even creative fields like music[2]. DP is characterized by instant feedback,
clear targets, and hyper-focused reflection on the exact nature of errors. All of those are challenging to provide in the writing context: papers can
take weeks to grade, the goal of "good writing" is hazy at best, and without a clear sense of their target, students cannot possibly reflect on errors
at the resolution that DP demands. Research suggests that these issues are worth addressing - a large-scale meta-analysis of writing instruction techniques (Hillocks, 1995)[3]
found that interventions that managed to provide immediate feedback and well-specified, scoped objectives had larger effect sizes than alternatives (like presentations,
lectures, and open-ended writing assignments).
To help make writing practice more rigorous and more scalable, EssAI uses machine learning to streamline and modernize some classic exercises[4] in writing
pedagogy that lend themselves to deliberate practice.
Feedback
"This tool has the potential to be a more valuable resource to students of creative writing than any given assignment or exercise I've seen currently circulated
at the undergraduate level.”
- Pilot User (Novelist & Writing Instructor)
"As someone who has had to go through the arduous process of learning the writing conventions of multiple academic disciplines, I am very excited about the
prospects of an ML tool that could instantly provide feedback on the conformity of my writing style. My political science major advisor suggested that my work
would go much further if I emulated the style and conventions of the most successful published papers in the field, and he was right. However, that process
took the better part of 3 years for me to master, slowly accumulating feedback and making improvements in each term paper. I see absolutely immense value in
an online tool where I could input the works of the best political scientists and get instantaneous feedback on how similar my writing is to theirs, enabling
me to rapidly iterate in a single session, as a supplement to the feedback from slower human cycles. I see this tool as useful not only for learning
discipline-specific conventions, but also for improving writing quality as a whole, by learning from a diverse selection of successful writers. After seeing
the EssAI prototype, I am so excited by the possibilities! I would sign up to test this without hesitation if I could choose a selection of authors more specific
to my personal interests and goals as a writer."
- Pilot User (Winner of a College Essay Award)
[1] Kellogg, R.T., Raulerson, B.A. Improving the writing skills of college students. Psychonomic Bulletin & Review 14, 237–242 (2007).
https://doi.org/10.3758/BF03194058
[2] Ericsson, K. A., Krampe, R. T., & Tesch-Römer, C. (1993). The role of deliberate practice in the acquisition of expert performance.
Psychological Review, 100(3), 363-406. doi:10.1037/0033-295X.100.3.363
[3] Hillocks, G., Jr. (1995).Teaching writing as reflective practice. New York: Teachers College Press.
[4] Edward P. J. Corbett. “The Theory and Practice of Imitation in Classical Rhetoric.” College Composition and Communication, vol. 22,
no. 3, 1971, pp. 243–250. JSTOR, www.jstor.org/stable/356450. Accessed 14 Apr. 2021.
How It Works
- Solution Overview
EssAI Primer
Users will first select a sample paragraph from the author, and EssAI Primer will separate paragraphs to sentence level,
offering some text structure hints. Then the user can blur original sentences and try to rewrite the context in their own understanding.
Popular stylometric metrics based on user feedback (built upon stylometric analysis from research papers[1]) are also calculated for each sentence pair as feedback for comparison.
EssAI Pro
Users will first type in paragraphs to be evaluated and select the author to be compared with.
EssAI Pro will clean the input texts and split them into sentence-level for BERT evaluation,
which will return authorship classification probabilities. Users will see color-coded sentences based on probabilities.
- System Architecture
- The front-end of EssAI is a Google Docs extension in JavaScript, CSS, and HTML.
- The data manipulation pipelines are deployed in AWS Lambda. Depending on the front-end request, Lambda will either return stylometric calculation or trigger BERT inference.
- Google Colab and Azure Machine Learning Service (AML) are used for model training and tracking.
- The final models are deployed as real-time inference endpoints on Azure Kubernetes Services (AKS) with GPU. Due to cost management, we pause our AKS cluster for most of the time. If you want to have a demo, please contact us.
- Model Architecture - BERT
Bidirectional Encoder Representations from Transformers (BERT) is published by Google AI in 2017, with application of the
bidirectional training of Transformer, a popular attention model, to language modelling[2]. By using a masked language model,
it is now possible to learn the context of each word from the words appearing both before and after it.
We mostly followed the BertAA: BERT fine-tuning for Authorship Attribution[5] implementation. We used the pre-trained BERT model
(BERT-base) with 12-layer, 768-hidden, 12-heads, 110M parameters that was trained on English text using 3.3 billion words total[3].
We freeze the entire architecture and attach a dense layer and a softmax layer to the architecture as fine-tuning for classification.
One difference we made was that instead of all authors belonging in one BERT model, we separated each writer for one BERT model.
The reason is because our users would probably not care how similar they are to other writers who are not their target author, and the
BERT model should serve its purpose to identify similarity to the one target author selected.
Additionally, to understand better how the “black box” BERT explains the style classification, we used an open-source library,
interpret-text[4], for model interpretability. It offers visualizations on the word-level local feature importance. However, as an
overhead, the library requires to use its own BERT wrapper (not compatible with self-implemented Hugging Face model). This restricts
some tuning opportunities for accuracy enhancement.
- Model Evaluation
We use classification accuracy as the evaluation metric. Different authors have very distinctive accuracies. We can reach 99.1% for
Jane Austen and 95.4% for Mark Twain. For some other authors that are not included in the final MVP scope, such as Scott Fitzgerald
and Charles Dickens, we ended at 60.3% and 72.6%.
To enhance the accuracy, we first tried to expand the datasets. Since we trained one BERT model for each author, each can have its
own dataset. Thus, we included more books from random authors into our pool. This method increased the accuracy for Mark Twain. We
also tuned several hyper-parameters, such as number of epochs, batch size, and max token length, but they did not give significant
enhancement. With the limitation of the BERT wrapper we implemented with the open source library interpret-text, unfortunately,
there were only few tuning parameters available.
Additionally, we tried to use 29 stylometric metric values as proxies for representing the text style, plug them into a simple
logistic regression, and evaluate the classification accuracy. We did not see much benefit out of the initial few experiments of
the stylometric logistic regression.
Apart from the train-validate-test dataset for famous authors’ books, we also evaluated our BERT models with the blog corpus[6]
to see how it reacted to daily/common text. We extracted 2000 randomly selected blogs, separated to sentence level, and evaluated
their similarity to Jane Austen and Mark Twain. As expected, the majority of sentences were identified as not similar to the target
author. For example, only 4000 out of 35000 sentences were marked as Jane Austen style.
- Model Future Development
Initially we have four authors within our MVP scope: Scott Fitzgerald, Charles Dickens, Jane Austen, and Mark Twain. With concerns
of Scott Fitzgerald and Charles Dickens model accuracies and potential misleading results, we decided to restrict our scope to be
Jane Austen and Mark Twain for our MVP.
However, by running BERT AutoML pipelines for Scott Fitzgerald and Charles Dickens with the existing datasets, we saw models could
reach 99.18% and 97.56% respectively. The tuning limitation might come from our BERT wrapper implementation from the interpret-text
library. Future development can look at developing Scott Fitzgerald and Charles Dickens models directly from Hugging Face pre-trained models.
- References
[1] Elahi, H. (n.d.). Hassaan-Elahi/Writing-Styles-Classification-Using-Stylometric-Analysis. Retrieved April 15, 2021, from
https://github.com/Hassaan-Elahi/Writing-Styles-Classification-Using-Stylometric-Analysis
[2] Horev, R. (2018, November 17). BERT explained: State of the art language model for NLP. Retrieved April 15, 2021, from
https://towardsdatascience.com/bert-explained-state-of-the-art-language-model-for-nlp-f8b21a9b6270
[3] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017.
Attention is all you need. In Advances in Neural Information Processing Systems, pages 6000–6010.
[4] Interpretml. (n.d.). Interpretml/interpret-text. Retrieved April 15, 2021, from
https://github.com/interpretml/interpret-text
[5] BertAA: Bert fine-tuning for Authorship Attribution, Mael Fabien, Esaú Villatoro-Tello, Petr Motlicek, and Shantipriya Parida, accepted at ICON 2020.
[6]
https://u.cs.biu.ac.il/~koppel/BlogCorpus.htm


Home
Trees
Indices
Help
python-graph
Identifier Index
[
A
B
C
D
E
F
G
H
I
J K
L
M
N
O
P
Q
R
S
T
U
V
W
X Y Z
_
]
A
accessibility
(in
pygraph.algorithms
)
add_edges()
(in
hypergraph
)
add_node_attribute()
(in
labeling
)
accessibility()
(in
pygraph.algorithms.accessibility
)
add_graph()
(in
common
)
add_nodes()
(in
common
)
add_edge()
(in
digraph
)
add_hyperedge()
(in
hypergraph
)
add_spanning_tree()
(in
common
)
add_edge()
(in
graph
)
add_hyperedges()
(in
hypergraph
)
AdditionError
(in
pygraph.classes.exceptions
)
add_edge()
(in
hypergraph
)
add_node()
(in
digraph
)
AlgorithmError
(in
pygraph.classes.exceptions
)
add_edge_attribute()
(in
labeling
)
add_node()
(in
graph
)
algorithms
(in
pygraph
)
add_edge_attributes()
(in
labeling
)
add_node()
(in
hypergraph
)
B
basegraph
(in
pygraph.mixins
)
basegraph
(in
pygraph.mixins.basegraph
)
breadth_first_search()
(in
pygraph.algorithms.searching
)
C
chow
(in
pygraph.algorithms.heuristics
)
configure()
(in
find
)
cut_edges()
(in
pygraph.algorithms.accessibility
)
chow
(in
pygraph.algorithms.heuristics.chow
)
configure()
(in
null
)
cut_nodes()
(in
pygraph.algorithms.accessibility
)
classes
(in
pygraph
)
configure()
(in
radius
)
cut_tree()
(in
pygraph.algorithms.minmax
)
common
(in
pygraph.mixins
)
connected_components()
(in
pygraph.algorithms.accessibility
)
cut_value()
(in
pygraph.algorithms.minmax
)
common
(in
pygraph.mixins.common
)
critical
(in
pygraph.algorithms
)
cycles
(in
pygraph.algorithms
)
complete()
(in
common
)
critical_path()
(in
pygraph.algorithms.critical
)
D
DEFAULT_LABEL
(in
labeling
)
del_hyperedge()
(in
hypergraph
)
digraph
(in
pygraph.classes
)
DEFAULT_WEIGHT
(in
labeling
)
del_node()
(in
digraph
)
digraph
(in
pygraph.classes.digraph
)
del_edge()
(in
digraph
)
del_node()
(in
graph
)
DIRECTED
(in
digraph
)
del_edge()
(in
graph
)
del_node()
(in
hypergraph
)
DIRECTED
(in
graph
)
del_edge()
(in
hypergraph
)
del_node_labeling()
(in
labeling
)
DIRECTED
(in
hypergraph
)
del_edge_labeling()
(in
labeling
)
depth_first_search()
(in
pygraph.algorithms.searching
)
discard()
(in
priority_queue
)
E
edge_attributes()
(in
labeling
)
edges()
(in
graph
)
euclidean
(in
pygraph.algorithms.heuristics.euclidean
)
edge_label()
(in
labeling
)
edges()
(in
hypergraph
)
exceptions
(in
pygraph.classes
)
edge_weight()
(in
labeling
)
empty()
(in
priority_queue
)
edges()
(in
digraph
)
euclidean
(in
pygraph.algorithms.heuristics
)
F
filters
(in
pygraph.algorithms
)
find
(in
pygraph.algorithms.filters.find
)
find
(in
pygraph.algorithms.filters
)
find_cycle()
(in
pygraph.algorithms.cycles
)
G
generate()
(in
pygraph.algorithms.generators
)
get_edge_properties()
(in
labeling
)
GraphError
(in
pygraph.classes.exceptions
)
generate_hypergraph()
(in
pygraph.algorithms.generators
)
graph
(in
pygraph.classes
)
generators
(in
pygraph.algorithms
)
graph
(in
pygraph.classes.graph
)
H
has_edge()
(in
digraph
)
has_node()
(in
graph
)
hyperedges()
(in
hypergraph
)
has_edge()
(in
graph
)
has_node()
(in
hypergraph
)
hypergraph
(in
pygraph.classes
)
has_edge()
(in
hypergraph
)
HeapItem
(in
pygraph.algorithms.utils
)
hypergraph
(in
pygraph.classes.hypergraph
)
has_hyperedge()
(in
hypergraph
)
heuristic_search()
(in
pygraph.algorithms.minmax
)
has_node()
(in
digraph
)
heuristics
(in
pygraph.algorithms
)
I
incidents()
(in
digraph
)
InvalidGraphType
(in
pygraph.classes.exceptions
)
insert()
(in
priority_queue
)
inverse()
(in
common
)
L
LABEL_ATTRIBUTE_NAME
(in
labeling
)
labeling
(in
pygraph.mixins.labeling
)
links()
(in
hypergraph
)
labeling
(in
pygraph.mixins
)
link()
(in
hypergraph
)
M
markup
(in
pygraph.readwrite
)
minimal_spanning_tree()
(in
pygraph.algorithms.minmax
)
mixins
(in
pygraph
)
maximum_flow()
(in
pygraph.algorithms.minmax
)
minmax
(in
pygraph.algorithms
)
mutual_accessibility()
(in
pygraph.algorithms.accessibility
)
N
NegativeWeightCycleError
(in
pygraph.classes.exceptions
)
node_order()
(in
digraph
)
NodeUnreachable
(in
pygraph.classes.exceptions
)
neighbors()
(in
digraph
)
node_order()
(in
graph
)
null
(in
pygraph.algorithms.filters
)
neighbors()
(in
graph
)
nodes()
(in
digraph
)
null
(in
pygraph.algorithms.filters.null
)
neighbors()
(in
hypergraph
)
nodes()
(in
graph
)
node_attributes()
(in
labeling
)
nodes()
(in
hypergraph
)
O
optimize()
(in
chow
)
optimize()
(in
euclidean
)
order()
(in
common
)
P
pagerank
(in
pygraph.algorithms
)
peek()
(in
priority_queue
)
priority_queue
(in
pygraph.algorithms.utils
)
pagerank()
(in
pygraph.algorithms.pagerank
)
pop()
(in
priority_queue
)
pygraph
R
radius
(in
pygraph.algorithms.filters
)
read()
(in
pygraph.readwrite.markup
)
reverse()
(in
common
)
radius
(in
pygraph.algorithms.filters.radius
)
read_hypergraph()
(in
pygraph.readwrite.markup
)
rank()
(in
hypergraph
)
readwrite
(in
pygraph
)
S
searching
(in
pygraph.algorithms
)
set_edge_weight()
(in
labeling
)
sorting
(in
pygraph.algorithms
)
set_edge_label()
(in
labeling
)
shortest_path()
(in
pygraph.algorithms.minmax
)
set_edge_properties()
(in
labeling
)
shortest_path_bellman_ford()
(in
pygraph.algorithms.minmax
)
T
topological_sorting()
(in
pygraph.algorithms.sorting
)
traversal
(in
pygraph.algorithms
)
transitive_edges()
(in
pygraph.algorithms.critical
)
traversal()
(in
pygraph.algorithms.traversal
)
U
unlink()
(in
hypergraph
)
utils
(in
pygraph.algorithms
)
W
WEIGHT_ATTRIBUTE_NAME
(in
labeling
)
write()
(in
pygraph.readwrite.markup
)
write_hypergraph()
(in
pygraph.readwrite.markup
)
_
__call__()
(in
find
)
__init__()
(in
NodeUnreachable
)
__package__
(in
pygraph.algorithms.heuristics.chow
)
__call__()
(in
null
)
__init__()
(in
graph
)
__package__
(in
pygraph.algorithms.heuristics.euclidean
)
__call__()
(in
radius
)
__init__()
(in
hypergraph
)
__package__
(in
pygraph.algorithms.minmax
)
__call__()
(in
chow
)
__init__()
(in
labeling
)
__package__
(in
pygraph.algorithms.pagerank
)
__call__()
(in
euclidean
)
__iter__()
(in
common
)
__package__
(in
pygraph.algorithms.searching
)
__cmp__()
(in
HeapItem
)
__len__()
(in
priority_queue
)
__package__
(in
pygraph.algorithms.sorting
)
__contains__()
(in
priority_queue
)
__len__()
(in
common
)
__package__
(in
pygraph.algorithms.traversal
)
__eq__()
(in
digraph
)
__ne__()
(in
digraph
)
__package__
(in
pygraph.algorithms.utils
)
__eq__()
(in
graph
)
__ne__()
(in
graph
)
__package__
(in
pygraph.classes
)
__eq__()
(in
hypergraph
)
__ne__()
(in
hypergraph
)
__package__
(in
pygraph.classes.digraph
)
__eq__()
(in
common
)
__package__
(in
pygraph
)
__package__
(in
pygraph.classes.exceptions
)
__eq__()
(in
labeling
)
__package__
(in
pygraph.algorithms
)
__package__
(in
pygraph.classes.graph
)
__getitem__()
(in
common
)
__package__
(in
pygraph.algorithms.accessibility
)
__package__
(in
pygraph.classes.hypergraph
)
__init__()
(in
find
)
__package__
(in
pygraph.algorithms.critical
)
__package__
(in
pygraph.mixins
)
__init__()
(in
null
)
__package__
(in
pygraph.algorithms.cycles
)
__package__
(in
pygraph.mixins.basegraph
)
__init__()
(in
radius
)
__package__
(in
pygraph.algorithms.filters
)
__package__
(in
pygraph.mixins.common
)
__init__()
(in
chow
)
__package__
(in
pygraph.algorithms.filters.find
)
__package__
(in
pygraph.mixins.labeling
)
__init__()
(in
euclidean
)
__package__
(in
pygraph.algorithms.filters.null
)
__package__
(in
pygraph.readwrite
)
__init__()
(in
HeapItem
)
__package__
(in
pygraph.algorithms.filters.radius
)
__package__
(in
pygraph.readwrite.markup
)
__init__()
(in
priority_queue
)
__package__
(in
pygraph.algorithms.generators
)
__repr__()
(in
common
)
__init__()
(in
digraph
)
__package__
(in
pygraph.algorithms.heuristics
)
__str__()
(in
common
)
Home
Trees
Indices
Help
python-graph
Generated by Epydoc 3.0.1 on Sat Aug 25 09:56:10 2012
http://epydoc.sourceforge.net


Hello, we're the Dabbawalas, your new tiffin delivery service. We know you're always busy. No time for cooking. So let us take care of that, we're really good at it, we promise!
Never cook again! We really mean that. We will provide you tiffin for 365 days/year from 11:30-3:30 p.m.
You're only sixty minutes away from your delicious and super healthy meals delivered right to your home or office.
Healthy food to remind you of your home.
Enroll as a vendor, earn extra income and help us to deliver best quality tiffins
You can directly order your tiffin by clicking on the order now button (from 12:00-3:00p.m.)after viewing the menu or you can also register as a vendor
Upon ordering you will get a mail about the order details.
Enjoy your meal after less than 60 minutes. See you the next time!Our men will take the tiffin from you after 3:30p.m. from your office or home or you can drop it in our deposit kiosks.
Prateek Saikia
Marketing Head
Nandita Kalita
Front-end Developer
Mohan Kumar Sah
Back-end Developer


AVA-I is a discord bot made by MatthewJ217#3287 on Discord. It was made in JavaScript with the discord.js Library.
AVA-II is a discord bot made by MatthewJ217#3287 on Discord. It was made in JavaScript with the discord.js Library and is AVA-II's sister.
Garrix is a Discord bot made by Lucatrio#9648. It was made in JavaScript with the discord.js Library.


DomViz
Dom visualizer tool
analyze
Base Node
A longer block of help text that breaks onto a new line and may extend beyond one line.
Target Node
A longer block of help text that breaks onto a new line and may extend beyond one line.
Base Visualization
Target Visualization


Forrest Delavega PID A10096902
Project Portfolio
Forrest is a 5th year Computer Science major. If you would like to see source code for any of the listed projects below please contact<EMAIL_ADDRESS>Projects
- CSE 134B "Virtue/Vice"
- CSE 135 "Online Store"
- CSE 190 Data Mining "Predictive Analytics on Wine ratings"
- CSE 167 Final Project
- CSE 100 "Butts in Seats - Android Application"


This is a collection of what I’ve read over the past years, generated from my Goodreads profile. Red entries are my 5 star picks! I started taking reading (as well as logging in Goodreads) much more seriously in 2020, so this will hopefully get better over time.
Last updated on .
2020
- If This Isn't Nice, What Is?: The Graduation Speeches and Other Words to Live By by
- Let My People Go Surfing: The Education of a Reluctant Businessman by
- Super Sushi Ramen Express: One Family's Journey Through the Belly of Japan by
- How to Do Nothing: Resisting the Attention Economy by
- The Alchemist by
- We Were Liars by
- The Factory by
- Convenience Store Woman by
- Rediscovering Travel: A Guide for the Globally Curious by
- Babel: Around the World in Twenty Languages by
- All You Need Is Kill by
- The City We Became by
- Twenty-one Truths About Love by
- Circe by
- Kitchen by
2019
- Ender's Game by
- Wave by
- Walkaway by
- In Real Life by
- Little Brother by
- Puzzle Ninja: Pit Your Wits Against The Japanese Puzzle Masters by
- Makers by
- The Fork, the Witch, and the Worm: Eragon by
- The Song of Achilles by
- Word Freak: Heartbreak, Triumph, Genius, and Obsession in the World of Competitive Scrabble Players by
- Doing Good Better: How Effective Altruism Can Help You Make a Difference by
2018
- Hector and the Search for Happiness by
- The Phantom Tollbooth by
- The Circle by
- Soonish: Ten Emerging Technologies That'll Improve and/or Ruin Everything by
- The Well of Ascension by
- Fifty Inventions That Shaped the Modern Economy by
- The Final Empire by
- Pollyanna by
2016
- 1984 by
- To Kill a Mockingbird by
2014
- Freakonomics: A Rogue Economist Explores the Hidden Side of Everything by
- John Adams by
- The Fellowship of the Ring by
- Watchmen by
- A People's History of the United States by
- An Abundance of Katherines by
- Inkheart by
- Eragon by
- The Lightning Thief by
- Looking for Alaska by
- The Giver by
- Harry Potter and the Sorcerer's Stone by
- Divergent by
- The Hunger Games by
- Steve Jobs by
- The Diary of a Young Girl by


Preparation time
less than 30 mins
Cooking time
1 to 2 hours
Serves
Serves 4
Give mutton a try - its mature flavour lends great depth and flavour to curry.
For the curry, heat a heavy-based frying pan until hot, add the cumin and coriander seeds and cinnamon and toast for a few seconds. Place the spices into a pestle and mortar or spice grinder and grind to a powder.
Heat a large heavy-based saucepan pan or casserole dish until hot, add the vegetable oil and the mutton and cook until golden-brown all over. Remove using a slotted spoon and set aside.
Add the onions and cook for 10 minutes, or until soft and golden-brown.
Add the garlic, ginger, chilli, toasted spices and remaining spices and cook for one minute.
Return the mutton to the pan then add the beef stock and bring to a simmer. Cover with a lid and cook over a gentle heat for one hour then remove the lid.
Add the desiccated coconut and the coconut milk and return to a simmer. Cook for another 30 minutes, or until just thickened and the meat is tender. Season, to taste, with salt and freshly ground black pepper.
For the rice, heat a saucepan until hot. Add the oil, onion, garlic and spices, and fry for two minutes.
Stir in the rice and add 600ml/1pint 1fl oz water. Bring to the boil, cover and reduce to a gentle simmer. Cook for 18-20 minutes until the rice is tender and all the liquid absorbed. Season with salt, freshly ground black pepper, lemon juice, then stir in the coriander leaves.
Spoon the mutton onto plates with a pile of rice alongside.Finish with a spoonful of yoghurt and mango chutney.