Code Monkey home page Code Monkey logo

Welcome to My Page

👋 Hi, I’m @annetta-zheng
👀 I’m interested in AI/ML.
🌱 I’m currently learning javascript...
📫 How to reach me LinkedIn Email
Please share any feedback, or if you want to connect 😄


Catalogue

Certifications

Work Sample (Please reach out to me for the password!)

Deep Learning/Machine Learning

Software Engineering

JavaScript
Python
Java

Certifications

Amazon

Meta


Blog App

A full stack Blog Application using React components on the front end, with a CRUD Application using NodeJS + Express + MySQL on the back end.

Key Features

  • Account Registeration: allow users to register and upload their profile.
  • User authentication: only authorized users can create, update, and delete blog posts.
  • Blog Posts: users can write and update with rich text editors and pictures, and delete their blog posts.
  • Customized View: users can view the posts filtered by categories and get posts recommendation within the same category.
  • Responsive View: pages adapt to different screen sizes and orientations.

image

^Back to Top


flask blog post web app

A Flask landing page with SQLAlchemy displaying blog posts and allowing users to login and register. image

^Back to Top


RESTful messenger web app

Code RESTful API Project with Redis Nameko.

^Back to Top


Sentiment Analysis and Music Recommendations Systems

Sentiment Analysis and Music Recommendations Systems Description: a review-based recommendation system with natural language processing (NLP) and Collaborative Filtering on 1.5M review data and 75k music meta data, utilizing Python via keras framework on an AWS EC2 instance.

Key Steps:

Step 1. Convolutional Neural Network Step 2. Autoencoder Step 3. Deep Neural Network
with NLTK for Sentiment Analysis
Results: 91.4% Test Accuracy
with SGD
Dimension Reduction
with Regularization for the recommender
Results: MAE below 0.4 & MSE below 40
Most significant token in review Most significant token in summary image image
image image
image

^Back to Top


Reviews Sentiment Analyzer

A basic sentiment analyzer with deep learning.

  • Results:
    • Accuracy on the test set using the original dictionary: 80.20%
    • Accuracy on the test set using the dictionary with stop words removed: 80.80%

Results under different algorithms

Click to expand

For the perceptron algorithm: best combination of T = 25, with validation accuracy = 79.40% Figure_4

For the average perceptron algorithm: best combination of T = 25, with validation accuracy = 80.00% Figure_5

For the pegasos algorithm: best combination of T = 25 \lambda = 0.01, with validation accuracy = 80.60% Figure_6 Figure_7

^Back to Top


Local Frog Predictor

- EY 2022 Better Working World Data Challenge, Rank 74/1222.

A species distribution model of one species of frog. Species distribution models are one of the most widely used ecological tools, a cornerstone in many countries worldwide of environmental regulation and conservation. image

^Back to Top


Blocks Game

A Strategic Game. Topics covered: Object-oriented programming (OOP), Data Structures. Play Here: Game

image image

^Back to Top


Enigma Machine

The Germany encryption machine used in WWII. Topics covered: Object-oriented programming (OOP), Data Structures.

The Settings Line and Input:

   * B III II I maa (az) (mn)
   asb 

Output: wtt

Configuration:

    abcdefghijklmnopqrstuvwxyz
    4 3
    I Ma     (wordle) (is) (fun)
    II Mb    (tears) (boing) (lucky)
    III Mm   (quack) (froze) (twins) (glyph)
    B R      (az) (by) (cx) (dw) (ev) (fu)
             (gt) (hs) (ir) (jq) (kp) (lo) (mn)

^Back to Top


Ataxx Game

Minmax algorithm, alpha-bata pruning.



At the beginning of the game, we start with pieces in all four corners.


There are two possible kinds of moves:
1. Extending - you can extend from a piece of your own color by laying down a new piece of your color in an empty square next to that existing piece (horizontally, vertically, or diagonally).
2. Jumping - you can jump by moving a piece of your own color to an empty, non-adjacent square that is no more than two rows and no more than two columns distant.


To make things even more interesting, you can place a set of blocks symmetrically about the center of the board before playing. These are pre-filled squares that may never be moved to (the blocks themselves never move). Setting blocks is only possible at the start of the game. The illustration below is an example of a starting configuration with 10 blocks. Each block is always reflected across the middle row and the middle column. In other words, there is symmetry both horizontally and vertically for any block that is placed. No block may be placed in the four corner squares, since the initial configuration has pieces there.

^Back to Top


Gitlet

A version-control system is essentially a backup system for related collections of files.

The main functionality that Gitlet supports is:

  1. Saving the contents of entire directories of files. In Gitlet, this is called committing, and the saved contents themselves are called commits.
  2. Restoring a version of one or more files or entire commits. In Gitlet, this is called checking out those files or that commit.
  3. Viewing the history of your backups. In Gitlet, you view this history in something called the log.
  4. Maintaining related sequences of commits, called branches.
  5. Merging changes made in one branch into another.
  6. Going remote, allowing collaboration with other people over the internet.

Internal Structure

Click to expand

Commits: image Branch: image

Commands, Outputs, and Edge Cases

Click to expand

By starting up the program java gitlet.Main init , it will create a repo directory and an initial commit through the command init(). Based on the command run, structure of files will be saved.

All Commands Click to expand

  ``` 
  1. java gitlet.Main add [file name]
  2. java gitlet.Main commit [message]
  3. java gitlet.Main rm [file name]
  4. java gitlet.Main log
  5. java gitlet.Main global-log
  6. java gitlet.Main find [commit message]
  7. java gitlet.Main status
  8. java gitlet.Main checkout -- [file name]
  9. java gitlet.Main checkout [commit id] -- [file name]
  10. java gitlet.Main checkout [branch name]
  11. java gitlet.Main branch [branch name]
  12. java gitlet.Main rm-branch [branch name]
  13. java gitlet.Main reset [commit id]
  14. java gitlet.Main merge [branch name]
  ``` 
Sample Outputs Click to expand
  Input: `java gitlet.Main log`

      ```
      ===
       commit a0da1ea5a15ab613bf9961fd86f010cf74c7ee48
       Date: Thu Nov 9 20:00:05 2017 -0800
       A commit message.

       ===
       commit 3e8bf1d794ca2e9ef8a4007275acf3751c7170ff
       Date: Thu Nov 9 17:01:33 2017 -0800
       Another commit message.

       ===
       commit e881c9575d180a215d1a636545b8fd9abfb1d2bb
       Date: Wed Dec 31 16:00:00 1969 -0800
       initial commit
       ```
 
  Input: `java gitlet.Main status`

    ```
    === Branches ===
    *master
    other-branch

    === Staged Files ===
    wug.txt
    wug2.txt

    === Removed Files ===
    goodbye.txt

    === Modifications Not Staged For Commit ===
    junk.txt (deleted)
    wug3.txt (modified)

    === Untracked Files ===
    random.stuff
    ```
Edge Cases Click to expand
  1. Conflict Files Any files modified in different ways in the current and given branches are in conflict. “Modified in different ways” can mean that the contents of both are changed and different from other, or the contents of one are changed and the other file is deleted, or the file was absent at the split point and has different contents in the given and current branches. In this case, replace the contents of the conflicted file with
<<<<<<< HEAD
contents of file in current branch
=======
contents of file in given branch
>>>>>>>

Once files have been updated according to the above, and the split point was not the current branch or the given branch, merge automatically commits with the log message Merged [given branch name] into [current branch name]. Then, if the merge encountered a conflict, print the message Encountered a merge conflict. on the terminal (not the log). Merge commits differ from other commits: they record as parents both the head of the current branch (called the first parent) and the head of the branch given on the command line to be merged in.

  1. Criss-cross Merges
image
  • Choose the candidate split point that is closest to the head of the current branch (that is, is reachable by following the fewest parent pointers along some path).
  • If multiple candidates are at the same closest distance, choose any one of them as the split point. (We will make sure that this only happens in our test cases when the resulting merge commit is the same with any of the closest choices.)

^Back to Top


Annetta Zheng's Projects

ataxx icon ataxx

Ataxx is a two-person game played with red and blue pieces on a 7-by-7 board.

blocks icon blocks

https://www.cbc.ca/kidscbc2/content/games/blocks-puzzle/index.html

enigma icon enigma

A substitution cipher on the letters of a message.

full-stack-blog-app-with-react-node.js-mysql icon full-stack-blog-app-with-react-node.js-mysql

A Full Stack Blog App in JavaScript with the ability to allow users to register and post their blogs. It allows user to create and manage an account, post and edit a blog with rich text editors and pictures, view the posts filtered by categories. Covered topics: React, Node.js, Express.js, and MySQL.

gitlet icon gitlet

A version-control system that mimics some of the basic features of the popular system Git.

local-frog-predictor icon local-frog-predictor

The output will be a species distribution model of one species of frog. Species distribution models are one of the most widely used ecological tools, a cornerstone in many countries worldwide of environmental regulation and conservation.

project-list icon project-list

Please visit my portfolio: https://annetta-zheng.github.io

sentiment_analysis icon sentiment_analysis

The goal of this project is to design a classifier to use for sentiment analysis of product reviews. Our training set consists of reviews written by Amazon customers for various food products. The reviews, originally given on a 5 point scale, have been adjusted to a +1 or -1 scale, representing a positive or negative review, respectively.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.