inter-word2vec

Word2Vec is a word vector system that has received attention for the way that mathematical operations on the vectors it generates give meaningful results.

To take an example from an article on Word2Vec:

vec(“king”) – vec(“man”) + vec(“woman”) =~ vec(“queen”)

Training Word2Vec works best with large quantities of text as a single corpus. I’m interested in mis-using it with smaller copora.

Reasoning Over Philosophy

If we can add and subtract vectors generated from different corpora, we can generate vectors for different philosophers’ ouvres (or phases) and compare them.

We can then add and subtract the same concepts from different philosophers corpora, standard corpora and poisoned/flavoured corpora to examine them and to extend/develop them.

We can use Wordnet to abstract the texts if there’s insufficient overlap. We can also project texts through Wordnet in various ways (e.g. find antonyms or tangentially related concepts) and use the results to create new vectors for comparison.

Evolving Philosophy

We can use word2vec mathematical statements normatively as tests for generated corpora. For each statement, when the vectors resulting from processing a corpus satisfies that statement (i.e. X – Y = Z, within the specified tolerance) the corpus passes that test.

We can specify the properties of a desired philosophy as these tests.

To generate a text that passes the test, start with a source text (for example either the collected translated works of Gilles Deleuze or the collected lyrics of Taylor Swift). While it doesn’t pass all of the specified tests, mutate the text and run them again. If the new version passes more tests, keep it. If not, discard it.

This will be very processor intensive, it’s a task for a compute cluster. Random word substitution will take an impractical amount of time. A more genetic approach, walking through conceptual space and informed by the words used in the tests, will still take a long time but may be practical. Even if not the results should be interesting.

Visual Applications

We can extend these uses to visual bag-of-words representations of images, reasoning over and generating artistic styles and genres. If visual representations are unusable for this we can use verbal descriptions of artworks from press releases, art journalism, or other references.

We can combine visual and verbal representations to try to capture semantic and aesthetic features together.

Dogecode

dcrun -u rpcuser -w rpcpassword DCvDS9g9VUZ94MSLbWi4zWRtxHrXeEctZ3
Hello World!

Cryptographic asset tokens can represent all kinds of things.

Including computer programs. Introducing…:

Dogecode

(There are several other projects called Dogecode. This isn’t them).

Dogecode takes computer programs in the Brainfuck programming language (chosen for simplicity of encoding):

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

and translates them into a csv file of token amounts using dcc:

INCB,8
JFOR,1
INCP,1
INCB,4
JFOR,1
INCP,1
INCB,2
INCP,1
INCB,3
INCP,1
...

which are then sent to a Dogeparty address (slowly) as a series of token transfer transactions using dcsend:

Sending lots of tokens. Make sure you really want to do this.
Waiting for token state to synch
Row 1: INCB,8
Waiting for token state to synch...........
Row 2: JFOR,1
Waiting for token state to synch.............
Row 3: INCP,1
Waiting for token state to synch........
Row 4: INCB,4
Waiting for token state to synch..................
Row 5: JFOR,1
Waiting for token state to synch.......................
Row 6: INCP,1
Waiting for token state to synch.......................
Row 7: INCB,2
Waiting for token state to synch......
Row 8: INCP,1
Waiting for token state to synch......
Row 9: INCB,3
Waiting for token state to synch......
Row 10: INCP,1
Waiting for token state to synch.....................
Row 11: INCB,3
Waiting for token state to synch..............
Row 12: INCP,1
Waiting for token state to synch.....

The transactions encode the program on the address, which can then be fetched and run as seen at the top of this post using dcrun.

For more details see the whitepaper.

Update: There’s an easier to use runner and more examples here.

MYSOUL

20141110080048_Komar&Melamid_We_Buy_and_Sell_Souls_5

I have placed my soul on the blockchain, representing it as a cryptographic asset token.

The MYSOUL token is on the Dogecoin blockchain as a Dogeparty asset:

http://dogepartychain.info/asset/MYSOUL

I’ve divided it up into 100 units. This is more efficient that having a single token to represent the soul and transferring it to a single owner, as competition within the market will both reduce costs and allocate this resource more efficiently than a monopoly could.

To make ownership of my soul more accessible, I’ve also created a MYSOUL asset on the Bitcoin blockchain with Counterparty:

http://www.blockscan.com/assetInfo/MYSOUL

This is also divided up into 100 units. Counterparty is more expensive for transactions than Dogeparty, but is more widespread, so it’s good to have both options.

Work In Progress: Some Art

poops

“Some Art”, html5 canvas and JavaScript animation, 2014. Work in progress.

Fear Of Smart Contracts

Babylon, 1772BC, about tea time.
King Hammurabi is explaining the idea of laws to several learned persons.

Hammurabi: So these laws will regulate how we go about our business in society, backed by the coercive power of the state.

Learned Person 1: Hang on. These laws seem to create a causal and moral domain of their own distinct from mere human intercourse. What if they go wrong?

Learned Person 2: Yes, yes! And what if they act against society? Or are written to be evil.

Hammurabi: I’m your king. I would never write bad laws.

Learned Person 1: Yes but suppose a bad king took over. What then? We need something to protect society from these “laws” if they go wrong.

Learned Person 3: Indeed. Most indeededly so.

Hammurabi: Well alright. I’ll add some laws governing the creation and application of laws. That way, laws can be used to govern laws.

Learned Person 3: But that would be like asking the wolf to account for his consumption of lambs!

Learned Person 1: Yes I really don’t see how using laws to alleviate the potential harm of laws works. That’s just circular logic.

Learned Person 4: Yes. What next? Perpetual motion? You’re just begging the question.

Hammurabi: I’m your ****ing king! Shut up and agree with me!

Learned Person 3: If we shut up how are we to agree with you? What do your “laws” say about that?

Learned Person 2: Yeah. There should be laws against people like you…

Hammurabi: GUARDS!

Object Oriented Ontology Critique Response Generator

You’re missing the point.

Monkeycoin

monkeycoin

Monkeycoin is the follow-up to Facecoin. It is a Bitcoin-like cryptocurrency that uses trying to write the complete works of Shakespeare as its proof of work. You can find out more here.

Proof Of Existence 2

god

I have placed the hash of “God” into the Bitcoin Blockchain:

SHA256: ebc3e2e6448f94af7b58e57658336a44d3ff44eafadb54e4c4cd71ba7e607594

Address: 163NUfEg61eJeNiQ9SyN6EDT1ynkzDL2ar

This proves that God exists.

Surgical Strike Update

I’ve updated the 2008 remake of my 1996 artistic programming language “Surgical Strike” to compile on modern versions of GNU/Linux.

https://gitorious.org/robmyers/surgical_strike/

It makes things like this from stealth bombers and old computer company logos:

strike

incoming!
    
codeword blim
    manouver 0 18 0
    roll 0 18 0
    deliver
set
    
// Main orders

load "f-117.dxf"
camouflage "MacOS.png"
roll 0 90 0
manouver 0.1 0 0
blim 22
Facecoin

facecoin
Facecoin, 2014, HTML5 and JavaScript.

http://robmyers.wpengine.com/facecoin/

Click here to run a visualization in your web browser.

Cryptocurrencies such as Bitcoin use a “proof of work” system to prevent abuse.

Artworks are proofs of aesthetic work.

Facecoin uses machine pareidolia as its proof of work. This is implemented by applying CCV’s JavaScript face detection algorithm to SHA-256 digests represented as greyscale pixel maps. An industrial-strength version would use OpenCV. Due to the limitations of face detection as implemented by these libraries, the digest pixel map is upscaled and blurred to produce images of the size and kind that they can find faces in.

The difficulty can be varied by altering the size and blur of the pixmap. Or by only allowing particular detected face bounds rectangles to be used a set number of times.