Swop it like it’s hot!

Some friends of mine created a community, where you don’t sell your things, you swap them for other things. It’s called swopspot and it’s amazing.  I already put two things on there from my crafty list and got a dinner (well, ramen) for it.  The other one is still being discussed.  So if you have stuff you want to get rid of, but don’t really want to bother selling, just go there and swap it for something you want. But be aware, it’s still in the Beta phase.  I’m actually not even sure if it’s even open beta, but they get more and more users every day, so they must do something right.

So here is shameless advertising.  But at least this time not for my own stuff.

Scarf

Well, I know it is spring, but this scarf also took me some time.  While it is not apparent how long it is, I hope the pattern comes out nicely.  Cudos to Kieran Foley for the pattern itself, which I slightly modified, because I found the consistency between certain parts more interesting.

Green Lace Scarf

I also made one with the original colours suggested in the pattern:

Fleece Scarf

And some detail:

Fleece Scarf Detail

 

Cat Toys

While spending idle time around cats, my husband and I discovered how to make easy cat toys.  Basically you just crochet or knit a ball and fill it with stuffing.  If you want to drive the/your cat crazy add some little catnip.  Personally, I prefer the crocheted balls, since while this is never a long lasting toy, the crocheted structure lasts a bit longer since the stitches are more independent.  Leave a long tail for some fun.

hanzo

Knit & Purl – The Knitting Pattern Generator

Last semester my study group was required to design and evaluate some random piece of software.  We chose to look into knitting pattern generators, because what is there available seems to be rather… abysmal (sorry to all the developers putting hard work in there, but a user study could have helped).

We did a Paper Mockup with a start screen:

The setup screen:

And the edit screen (look at the drag and drop function!):

We also created a computer based mockup version again with a start screen:

The setup screen:

And the editor:

I’m showing you both versions here, because they show different sides of the same thing.  The first one is more how we wanted the design to be while the second one maybe gives a feel for the interaction methods.

So, we didn’t get any further than this, but user tests showed that our knitting pattern generator is can be used more intuitively than the free programs available at the moment.  If you are interested in implementing our concept, just contact me and I can give you all the material and deal out the legal issues with my study group and university.

More toys!

See more toys I did:

The hello witchy!  This is a toy for a friend of mine who likes the colours blue and black.  Can be done at any time upon request, also with variations.

hello witchy!

Jim the Fish (yes, this is a Doctor Who reference).  Although he’s never really shown but only mentioned in the original series, I thought crocheting the fins in a hyperbolic structure makes sense there.  Also given to a friend.  Can be done at anytime.

jim the fish

Don’t think I’ve shown the elephant already.  The tiny one that is.  Sits with my husband at home and peaks from his shelfs.

elephant

A ladybug upon request.  Already sold.

a ladybug

And a bunny for a friend of mine.  It is actually supposed to look like it does, a bit donnie darko in the feeling and also made of washable stuff which will felt eventually, since the kid will grow up on a farm.

donnie darko bunny

Socks and Mittens! (and a vest)

I tend to forget to post everything I actually make and I also tend to forget to even take a picture of all the stuff I make.

So here are socks I made for my husband:

Also I made mittens for someone else:

I like the detail there, look at the leaves:

and the wristband:

Then there is this vest I finally finished, where the lace is interesting:

and a hat with my own design (it’s green with orange dots and at that point I haven’t quite found out how to work out my camera I’m afraid):

If you want knitted or crocheted accessories, you can always contact me.  I do existing patterns and create for your own needs too.

TF-IDF for Dummies

In connection to the latest paper I wrote I had to implement some TF-IDF analysis and since I didn’t find a quick understandable overview on the internet in one place, I’ll just try and give a brief explanation of things here.

So what is it?  TF is short for Term Frequency and IDF means Inverse Document Frequency.

What you simply do to get the Term Frequency of a term is, that you count all the occurrences of that term in one document and divide that over the total number of occurrences of every term.  You can also do this with a simple piece of python code. What I did there additionally was, removing all the stop words of the English language.

def makeSnippetDictionary( snippets ):
    snippetdict = { }
    stopwords = [ ]
    wordlist = makeSnippetWordList( snippets )
    with open( "stopwords.txt" ) as f:
        stopwords = f.read().split( "," )
    for word in wordlist:
        if not word in stopwords:
            if snippetdict.has_key( word ):
                snippetdict[word] += 1
            else:
                snippetdict[word] = 1
    for word, value in snippetdict.items():
        snippetdict[word] = float( value ) / ( len( wordlist ) )
    return snippetdict

So this is just one part of the code, but it tells pretty much what it does.  I split the document from its completely lower cased string format into one list of words..  Then I converted it into a dictionary (for other programming languages: a map or mapping) and counted how often the same word occurs.   The line before the return statement then just divides each value by the length of the list of words and there you go: relative term frequency done!  Of course you can do some sorting then to make it look prettier, but that’s basically it.

Now how to calculate/implement the inverse document frequency?  Good that you asked!  The inverse document frequency describes the relation of the general occurrence of a term in your document collection.  To solidly calculate this, you should use at least 2 different documents that are relevant to your analysis, though the more the better.  You then basically divide your number of documents by the number of documents the term occurred in and take the logarithm from it.  Multiplying that with the relative term frequency gives you the much wanted TF-IDF values.

def idfCorpus( snippets, reviews ):
    wlreviews = makeWordListDict( reviews )
    idf = { }
    for tf, terms in snippetTFRank( snippets ):
        for word in terms:
           for reviewnr, review in wlreviews.items():
               if word in review:
                   idf[word] = idf.get( word, 0 ) + 1
    for word, df in idf.items():
        idf[word] = math.log( len( wlreviews )/idf[word] )
    return idf

def tfidfCorpus( snippets, reviews ):
    tf = makeSnippetDictionary( snippets )
    idf = idfCorpus( snippets, reviews )
    tfidf = { }
    for term, frequency in tf.items():
        tfidf[term] = tf.get( term ) * idf.get( term, 0 )
    return tfidf

The piece of python above basically shows you how to do this.  To interpret it there is basically one rule:  The higher the TF-IDF value of a term in one document the more important it is.  Bear in mind that the relative term frequency is different for every single document and applying TF-IDF values should be done in such a way, that they are different for every document you have.

So why would you want to use this?  In my case it was that I wanted to determine whether certain parts within product reviews (in the code called snippets) have a higher likelihood for certain words (yes they do!).  Implementing a TF-IDF analysis in your text processing machine learning algorithm can help improving it!

Frog Button Pattern

I figured, since it is a pattern of my own anyway, here for others to make the pattern of the frog button.  It’s a free pattern and you can use it whenever you want and modify and whatever.  Note though, that these are used as a political campaign material by the Green candidate for the mayoral elections in Weimar.

You will need:

  • some green, pink and white wool. (I use wool, that is specifically designed to make puppets out of them.)
  • a 1.5 mm crochet hook
  • a sewing needle
  • a tiny amount of stuffing (or scrap yarn, but I find that more complicated to deal with at this size)
  • a small safety pin

Head top (make 1, uses green wool):

crochet a chain of 2.

round 1: crochet 6 stitches into second stitch from hook

round 2: crochet 2 in each stitch (12)

round 3: crochet 2 in the first stitch and one in the next, repeat for round (18)

round 4: crochet 2 in the first stitch and one in the two next, repeat for round (24)

round 5: crochet one in all stitches (24), fasten off.

 

Inner mouth (make 2, uses pink wool):

crochet rounds 1-4 of head top. fasten off.

 

Chin ( make 1, uses white wool):

crochet like head top, fasten off.

 

Legs & feet (make 1, uses green wool):

crochet a chain of desirable length (I usually do 16 to 20 stitches plus 1 to turn).

crochet down the chain.

crochet a chain of five where you finished, slip with the end of legs. (do this three times on either side) and fasten off.

 

Assembly:

Put a tiny amount of stuffing in the top head and sew one inner mouth onto it.

Don’t put any stuffing in the chin, sew the other inner mouth onto it.

Sew those together in the back of the head (which you define on your own), about half way through, so the frog has an open mouth.

Sew legs in the middle of chin.

Add a safety pin.

Enjoy!