<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def from_word2vec(fname, fvocab=None, binary=False):
 """ Load the input-hidden weight matrix from the original C word2vec-tool format. Note that the information stored in the file is incomplete (the binary tree is missing), so while you can query for word similarity etc., you cannot continue training with a model loaded this way. `binary` is a boolean indicating whether the data is in binary word2vec format. Word counts are read from `fvocab` filename, if set (this is the file generated by `-save-vocab` flag of the original C tool). """

    vocabulary = None
    if fvocab is not None:
      logger.info("loading word counts from %s" % (fvocab))
      vocabulary = Embedding.from_word2vec_vocab(fvocab)

    logger.info("loading projection weights from %s" % (fname))
    if binary:
      words, vectors = Embedding._from_word2vec_binary(fname)
    else:
      words, vectors = Embedding._from_word2vec_text(fname)

    if not vocabulary:
      vocabulary = OrderedVocabulary(words=words)

    return Embedding(vocabulary=vocabulary, vectors=vectors)